C#Outlook互操作从文件夹发送
本文关键字:文件夹 互操作 C#Outlook | 更新日期: 2023-09-27 18:00:42
我正试图从列为文件夹的电子邮件地址发送电子邮件。基本上,我有一个指定了电子邮件地址的文件夹。每当有什么东西进入电子邮件时,它就会进入文件夹。电子邮件地址不是分配给我的帐户。我会使用SMTP,但我们的公司网络不允许这样做。
如何从该文件夹的电子邮件中用C#发送电子邮件?
我的代码设置如下。
Outlook.Application oApp = new Outlook.Application();
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
oNS.Logon(Missing.Value, Missing.Value, true, true);
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.Subject = subject;
string html;
html = message;
html = html.Replace("'n","<br/>");
oMsg.HTMLBody = html;
Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;
Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(to);
//Rest of my closing stuff here.
如果你已经有了文件夹的电子邮件地址(你没有提到这是否是问题的一部分,但听起来不是),你不应该为此使用Outlook interop。试试System.Net.Mail
中的类。这个网站有一些很好的例子,但这里有一些快速的东西:
const string PR_SMTP_ADDRESS =
"http://schemas.microsoft.com/mapi/proptag/0x39FE001E";
...
var msg = new MailMessage();
msg.From = new MailAddress(recipient.PropertyAccessor.GetProperty(PR_SMTP_ADDRESS).ToString());
msg.To.Add(new MailAddress(folderAddress));
msg.Subject = subject;
msg.IsBodyHtml = true;
msg.Body = html;
var smtpClient = new SmtpClient("{SMTP server address or IP}");
smtpClient.Send(msg);
我只是猜测我得到收件人地址的部分,它是基于这个MSDN页面的。
在我看来,整个文件夹的内容与你的问题无关(如果我错了,请纠正我),归根结底,你只想通过Outlook发送一封带有特定回复地址的电子邮件。您可以将MailItem.SenderEmailAddress用于此目的:
oMsg.SenderEmailAddress = "my.special.address@domain.com"
或者,您可以将答复地址添加到MailItem.ReplyRecipients集合中。