11

Oki,所以我正在处理 Outlook .msg 模板。以编程方式打开它们,根据我的数据库中的内容插入值。

前任。当我想在“收件人”字段中添加多个收件人时,而不是执行以下操作,

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

我做下面的事情,这更简单,尤其是当我在循环中做的时候。

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

我的问题是,我还想在“抄送”字段中添加多个收件人,而上述功能仅适用于“收件人”字段。如何在不进行字符串操作的情况下将多个收件人添加到“抄送”字段。

通常我会像这样将收件人添加到抄送中,

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

我使用 interop.outlook 并从模板创建一个邮件项。

提前致谢。

4

2 回答 2

13

假设如果您有两个List收件人,那么您可以这样做。

编辑:包括完整的代码。

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();
于 2013-05-22T12:45:09.263 回答
3

使用此处记录的 Recipients 属性(查找第二个示例)。您可以将很多人添加到集合中,然后将目标类型从 更改toCC

于 2013-05-22T12:39:11.223 回答