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

时间:2012-06-27 09:47:57

标签: c# email outlook vsto

我正在使用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();

2 个答案:

答案 0 :(得分:13)

您正在使用Outlook发送邮件。由于必须将Outlook配置为使用邮件的from地址,因此您无法直接提供from地址。但是,您可以选择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;
    }
}

答案 1 :(得分:6)

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

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