2013-05-22 28 views
10

Oki, vì vậy, hãy làm việc với các mẫu .msg. Mở chúng theo cách lập trình, chèn các giá trị dựa trên những gì trong db của tôi.Cách thêm nhiều người nhận vào trường mailitem.cc C#

ví dụ: khi tôi muốn thêm nhiều người dùng lại tại trường "Tới", thay vì làm như sau,

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

tôi làm những gì dưới đây, đơn giản hơn, đặc biệt là khi tôi làm việc đó trong vòng lặp.

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

Vấn đề của tôi là, tôi cũng muốn thêm nhiều người nhận vào trường "CC" và chức năng ở trên chỉ hoạt động cho trường "Tới". Làm thế nào tôi có thể thêm nhiều người nhận vào trường "CC" mà không phải thực hiện thao tác chuỗi.

thường tôi sẽ thêm người nhận để cc như vậy,

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

im sử dụng interop.outlook và tạo ra một mailitem từ mẫu.

Xin cảm ơn trước.

Trả lời

11

Giả sử Nếu bạn có hai số List người nhận, thì bạn có thể làm như thế này.

Chỉnh sửa: Bao gồm mã đầy đủ.

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(); 
+0

không thể làm cho nó hoạt động, bạn có chắc nó sẽ hoạt động với triển vọng 2007/office 2007 không? – Mana

+0

@Mana: Vấn đề bạn đang gặp phải là gì? –

+0

bạn có thể giải thích dòng này không? Người nhận oCCRecip = oRecips.Add (p_sUserID); ở đâu hoặc p_sUserID làm gì trong .add()? – Mana

3

Sử dụng thuộc tính Người nhận làm tài liệu here (tìm ví dụ thứ hai). bạn có thể thêm nhiều người vào bộ sưu tập và sau đó thay đổi loại đích từ to thành CC.

+0

rằng ví dụ là cho VBA, im lập trình trong C#, và thậm chí nếu tôi đã được lập trình trong VBA, các CreateItem sẽ không làm việc kể từ khi im sử dụng office2007 – Mana

+0

Tôi nghĩ rằng họ có các API tương tự. Nhưng bạn biết không, tôi thích câu trả lời của Ramesh tốt hơn tôi. – Renan

+1

CreateItem chỉ hoạt động trong tất cả các phiên bản của Outlook. –

Các vấn đề liên quan