问题
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.
回答1:
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();
回答2:
Use the Recipients property as documented here (look for the second example). you can add a lot of people to the collection and then change the destination type from to
to CC
.
来源:https://stackoverflow.com/questions/16691888/how-to-add-multiple-recipients-to-mailitem-cc-field-c-sharp