Как отправить письмо с помощью 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();
2 ответа
Вы используете 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;
}
}
Метод Send отправляет почту, используя учетную запись по умолчанию. Чтобы указать другую учетную запись для отправки почты, задайте для свойства SendUsingAccount нужную учетную запись, прежде чем вызывать метод Send.
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();
Более подробную информацию можно найти здесь: