How to add multiple recipients to mailitem.cc field c#

Mana picture Mana · May 22, 2013 · Viewed 23.5k times · Source

Oki, so im working on outlook .msg templates. Opening them programmatically, inserting values base on what's in my db.

ex. when i want to add multiple reciepients at "To" field, instead of doing as following,

   mailitem.To = a + ";" + b + ";" + c;

i do whats below, which is simpler, especially when i'm doing it in a loop.

   mailitem.Recipients.add("a");
   mailitem.Recipients.add("b");
   mailitem.Recipients.add("c");

My problem is, i also want to add multiple recipients at "CC" field and the function above only works for "To" field. How can i add multiple recipients to "CC" field without having to do string manipulation.

normally i would add recipients to cc like so,

   mailitem.CC = a + ";" + b + ";" + c;

im using interop.outlook and creating an mailitem from template.

Thanks in advance.

Answer

Ramesh Durai picture Ramesh Durai · May 22, 2013

Suppose If you have two List of recipients, then you can do like this.

Edit: Included full code.

var oApp = new Microsoft.Office.Interop.Outlook.Application();
var oMsg = (MailItem) oApp.CreateItem(OlItemType.olMailItem);

Recipients oRecips = oMsg.Recipients;
List<string> sTORecipsList = new List<string>();
List<string> sCCRecipsList = new List<string>();

sTORecipsList.Add("ToRecipient1");

sCCRecipsList.Add("CCRecipient1");
sCCRecipsList.Add("CCRecipient2");
sCCRecipsList.Add("CCRecipient3");

Recipients oRecips = oMsg.Recipients;

foreach (string t in sTORecipsList)
{
    Recipient oTORecip = oRecips.Add(t);
    oTORecip.Type = (int) OlMailRecipientType.olTo;
    oTORecip.Resolve();
}

foreach (string t in sCCRecipsList)
{
    Recipient oCCRecip = oRecips.Add(t);
    oCCRecip.Type = (int) OlMailRecipientType.olCC;
    oCCRecip.Resolve();
}

oMsg.HTMLBody = "Test Body";
oMsg.Subject = "Test Subject";
oMsg.Send();