C#Outlook互操作从文件夹发送

C#Outlook互操作从文件夹发送,c#,outlook,sendmail,C#,Outlook,Sendmail,我正在尝试从列为文件夹的电子邮件地址发送电子邮件。基本上,我有一个文件夹和一个电子邮件地址分配给它。无论什么时候,邮件都会进入文件夹。电子邮件地址不是分配给我的帐户。我会使用SMTP,但我们的公司网络不允许这样做 如何从该文件夹的电子邮件发送C#格式的电子邮件 我的代码设置如下 Outlook.Application oApp = new Outlook.Application(); Outlook.NameSpace oNS = oApp.GetNamespace("mapi"); oNS.

我正在尝试从列为文件夹的电子邮件地址发送电子邮件。基本上,我有一个文件夹和一个电子邮件地址分配给它。无论什么时候,邮件都会进入文件夹。电子邮件地址不是分配给我的帐户。我会使用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.Application oApp=新建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;
字符串html;
html=消息;
html=html。替换(“\n”和“
”); oMsg.HTMLBody=html; Outlook.Recipients oRecips=(Outlook.Recipients)oMsg.Recipients; Outlook.Recipient oRecip=(Outlook.Recipient)oRecips.Add(to); //我剩下的结束语就在这里。
如果您已经拥有文件夹的电子邮件地址(您没有提到这是否是问题的一部分,但听起来似乎不是),则不必为此使用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);

我只是在猜测收件人地址的来源。

在我看来,整个文件夹的内容与您的问题无关(如果我有错,请纠正我),归根结底就是您希望通过Outlook发送一封带有特定回复地址的电子邮件。为此,您可以使用:

oMsg.SenderEmailAddress = "my.special.address@domain.com"

或者,您可以将回复地址添加到收藏中。

很抱歉,我忘了提及。我们的网络不允许我们使用公司SMTP服务器。我只能通过outlook发送/接收邮件。这两个对象都设置为只读。我相信它们是用于if语句,而不是实际设置发送的电子邮件的值。我觉得这些东西让我错过了什么,但我找不到任何相反的东西。