如何通过指定发件人地址使用Microsoft.Office.Interop.Outlook.MailItem发送邮件

我正在使用Interop通过Outlook发送电子邮件,但我无法指定发件人电子邮件地址。

我想向来自同一发件人(来自)的多个用户发送邮件。 我需要提一下电子邮件地址。 但是我找不到使用Intellisense的属性,允许我指定它。

请帮忙。

Microsoft.Office.Interop.Outlook.Application olkApp1 = new Microsoft.Office.Interop.Outlook.Application(); Microsoft.Office.Interop.Outlook.MailItem olkMail1 = (MailItem)olkApp1.CreateItem(OlItemType.olMailItem); olkMail1.To = txtpsnum.Text; olkMail1.CC = ""; olkMail1.Subject = "Assignment note"; olkMail1.Body = "Assignment note"; olkMail1.Attachments.Add(AssignNoteFilePath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, 1, "Assignment_note"); olkMail1.Save(); //olkMail.Send(); 

您正在使用Outlook发送邮件。 由于outlook必须配置为使用邮件的发件人地址,因此您无法直接提供发件人地址。 但是,您可以选择Outlook上可用的帐户。 例如 :

 using Outlook = Microsoft.Office.Interop.Outlook; Outlook.Accounts accounts = olkApp1.Session.Accounts; foreach (Outlook.Account account in accounts) { // When the e-mail address matches, send the mail. if (account.SmtpAddress == "from@mail.com") { olkMail1.SendUsingAccount = account; ((Outlook._MailItem)olkMail1).Send(); break; } } 

Send方法使用默认帐户发送邮件。 要指定发送邮件的其他帐户,请在调用Send方法之前将SendUsingAccount属性设置为所需的帐户 。

 var application = new Application(); var mail = (_MailItem) application.CreateItem(OlItemType.olMailItem); mail.To = "anonymous@somedomain.com"; .... Outlook.Account account = Application.Session.Accounts["MyOtherAccount"]; mailItem.SendUsingAccount = account; mail.Send(); 

更多信息可以在这里找到:

http://msdn.microsoft.com/en-us/library/ff184652.aspx