How to send a mail using Microsoft.Office.Interop.Outlook.MailItem by specifying the From Address

c#, email, outlook, vsto

Solution

You are using outlook to send the mail. Since outlook must be configured to use the `from` address of your mail, you cannot provide the `from` address directly. However, you can select an account available on outlook. For example :

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;
    }
}

Problem

I'm using Interop for sending e-mails via Outlook, but I am not able to specify the From e-mail address. I want to send mails to multiple users originating from the same sender (from). I need to mention the from e-mail address. However I cannot find a property using Intellisense that allows me to specify it. Please help. ``` 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(); ```

Original source