web-dev-qa-db-ja.com

mailitem.ccフィールドc#に複数の受信者を追加する方法

沖電気、Outlookの.msgテンプレートに取り組んでいます。プログラムでそれらを開き、データベースの内容に基づいて値を挿入します。

例次のようにする代わりに、「宛先」フィールドに複数の受信者を追加したい場合は、

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

私は以下のことを行います。これは、特にループで実行している場合は、より簡単です。

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

私の問題は、「CC」フィールドに複数の受信者を追加したいのですが、上記の機能は「To」フィールドでのみ機能します。文字列操作を行わずに「CC」フィールドに複数の受信者を追加するにはどうすればよいですか。

通常、私は受信者をccに追加します。

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

interop.Outlookを使用し、テンプレートからメールアイテムを作成しています。

前もって感謝します。

10
Mana

2つの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();
13
Ramesh Durai

文書化されているようにRecipientsプロパティを使用します ここ (2番目の例を探してください)。コレクションに多くの人を追加してから、宛先タイプをtoからCCに変更できます。

3
Renan