使用Interop在C#中发送电子邮件时如何从多个Outlook配置文件中选择?

3

我从 "http://www.codeproject.com/Tips/165548/C-Code-snippet-to-send-an-Email-with-attachment-fr" 找到了这段代码片段。

// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();

// Create a new mail item.
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);

// Set HTMLBody. 
oMsg.HTMLBody = "Test"

//Subject line
oMsg.Subject = "Test Sub";

// Add a recipient.
Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;

// Change the recipient in the next line if necessary.
Outlook.Recipient oRecip;

oRecip = (Outlook.Recipient)oRecips.Add(UserID);
oRecip.Resolve();

oRecip = (Outlook.Recipient)oRecips.Add(Recipients[i]);
oRecip.Resolve();

// Send.
oMsg.Send();

}

如果我在Outlook中配置了多个帐户,我需要知道如何从特定的Outlook帐户发送邮件。

谢谢, Avirup。

2个回答

2

我从另一个帖子中找到了答案。我们需要为不同的账户设置配置文件名称,以下代码将完成此工作:

Outlook.Account account = Application.Session.Accounts["MyOtherAccount"];


你可以使用类似以下链接的方式枚举账户:https://learn.microsoft.com/en-us/previous-versions/office/developer/office-2007/bb207787(v=office.12) - TripleAntigen

0

我花了一些时间尝试解决这个问题,最终我只是在模板.msg文件中使用电子邮件地址作为发件人。显然,所使用的模板可以是动态的(对我们来说,基于语言) -

Outlook.MailItem oMsg = (Outlook.MailItem)outlookApp.CreateItemFromTemplate("C:\\mail_templates\\template_"+lang+".msg");

我意识到这并不是按照问题要求回答,但这是我们最终采用的解决方法——它可能适用于您的情况,但希望能对您有所帮助。


我只是在想,如果使用模板是否可以指定用于发送邮件的 Outlook 配置文件。 - Avirup Das
@AvirupDas,您可以在模板中指定一个电子邮件地址作为发送方,因此实际上是可以的。 - aland
啊,是的...当然。*.msg文件也可以保存收件人地址。但我实际上正在使用一个*.html模板作为邮件正文。我想,我需要将*.msg文件由该HTML模板组成,以适应所需的要求。 - Avirup Das

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接