2013-05-22 12 views
10

Oki, quindi sto lavorando sui modelli .msg di Outlook. Aprendoli a livello di codice, inserendo valori base su cosa c'è nel mio db.Come aggiungere più destinatari al campo mailitem.cc C#

ex. quando voglio aggiungere più reciepients al campo "A", invece di fare come seguendo,

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

faccio che cosa è al di sotto, che è più semplice, soprattutto quando lo sto facendo in un ciclo.

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

Il mio problema è, voglio anche aggiungere più destinatari campo "CC" e la funzione di cui sopra funziona solo per campo "A". Come posso aggiungere più destinatari al campo "CC" senza dover manipolare le stringhe.

Normalmente avrei aggiungere i destinatari a cc in questo modo,

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

im utilizzando interop.outlook e la creazione di un MailItem da modello.

Grazie in anticipo.

risposta

11

Supponi Se hai due di destinatari, puoi farlo in questo modo.

Modifica: codice completo incluso.

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

non riesco a farlo funzionare, sei sicuro che dovrebbe funzionare con Outlook 2007/Office 2007? – Mana

+0

@Mana: qual è il problema che stai affrontando? –

+0

potresti spiegare questa linea? Destinatario oCCRecip = oRecips.Add (p_sUserID); dove o cosa sta facendo p_sUserID in .add()? – Mana

3

Utilizzare la proprietà Destinatari come documentato here (cercare il secondo esempio). è possibile aggiungere un sacco di persone alla raccolta e quindi modificare il tipo di destinazione da to a CC.

+0

che esempio è per VBA, im programmazione in C#, e anche se fossi programmazione in VBA, il CreateItem non funzionerebbe in quanto im utilizzando office2007 – Mana

+0

ho pensato che avevano la stessa API. Ma sai cosa, mi piace la risposta di Ramesh meglio della mia. – Renan

+1

CreateItem funziona solo fien in tutte le versioni di Outlook. –

Problemi correlati