Существует два возможных способа указания отправителя:
- Если в Outlook настроено несколько учетных записей, вы можете использовать свойство MailItem.SendUsingAccount , которое позволяет установить
Account
объект, представляющий учетную запись, под которой должен быть отправлен MailItem
. Например:
public static void SendEmailFromAccount(Outlook.Application application, string subject, string body, string to, string smtpAddress)
{
// Create a new MailItem and set the To, Subject, and Body properties.
Outlook.MailItem newMail = (Outlook.MailItem)application.CreateItem(Outlook.OlItemType.olMailItem);
newMail.To = to;
newMail.Subject = subject;
newMail.Body = body;
// Retrieve the account that has the specific SMTP address.
Outlook.Account account = GetAccountForEmailAddress(application, smtpAddress);
// Use this account to send the email.
newMail.SendUsingAccount = account;
newMail.Send();
}
public static Outlook.Account GetAccountForEmailAddress(Outlook.Application application, string smtpAddress)
{
// Loop over the Accounts collection of the current Outlook session.
Outlook.Accounts accounts = application.Session.Accounts;
foreach (Outlook.Account account in accounts)
{
// When the email address matches, return the account.
if (account.SmtpAddress == smtpAddress)
{
return account;
}
}
throw new System.Exception(string.Format("No Account with SmtpAddress: {0} exists!", smtpAddress));
}
Свойство
MailItem.SentOnBehalfOfName позволяет задать строку, указывающую отображаемое имя для предполагаемого отправителя почтового сообщения. Имейте в виду, вам нужно разрешение, чтобы иметь возможность отправлять что-либо от имени другого человека.