2012-09-11 15 views

risposta

3

si può farlo utilizzando i servizi di interoperabilità outlook

using Outlook = Microsoft.Office.Interop.Outlook; 

Outlook.MailItem mail = Application.CreateItem(
     Outlook.OlItemType.olMailItem) as Outlook.MailItem; 
    mail.Subject = "Quarterly Sales Report FY06 Q4"; 
    Outlook.AddressEntry currentUser = 
     Application.Session.CurrentUser.AddressEntry; 
    if (currentUser.Type == "EX") 
    { 
     Outlook.ExchangeUser manager = 
      currentUser.GetExchangeUser().GetExchangeUserManager(); 
     // Add recipient using display name, alias, or smtp address 
     mail.Recipients.Add(manager.PrimarySmtpAddress); 
     mail.Recipients.ResolveAll(); 
     mail.Attachments.Add(@"c:\sales reports\fy06q4.xlsx", 
      Outlook.OlAttachmentType.olByValue, Type.Missing, 
      Type.Missing); 
     mail.Send(); 
    } 

esempio lavoro sono here ..

+4

Quindi questo aspetto utilizza Outlook per inviare effettivamente la posta in background . La domanda è come chiedere effettivamente di aprire la nuova finestra dei messaggi con un allegato già allegato, lasciandomi la possibilità di aggiungere all'e-mail prima di inviarlo. – Sinaesthetic

+0

Finalmente qualcuno ha la stessa preoccupazione di me. Ho creato l'excel temporaneo da un GridView. Vorrei aprire solo un nuovo messaggio di Outlook con l'Excel allegato e lasciare che l'utente premi Invia. – Si8

15

vecchia questione, ma ho anche corse per questo quindi ecco una soluzione di copia e incolla:

Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application(); 
Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); 

oMsg.Subject = "subject something"; 
oMsg.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML; 
oMsg.HTMLBody = "text body"; //Here comes your body; 
oMsg.Attachments.Add("c:/temp/test.txt", Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing); 
oMsg.Display(false); //In order to display it in modal inspector change the argument to true 

Avrai bisogno di aggiungere un riferimento al componente Microsoft.Office.Interop.Outlook nel progetto.

+1

Penso che questa risposta dovrebbe essere contrassegnata come la soluzione. – Bronek

-2

Mi sono imbattuto in una situazione in cui ho bisogno di sviluppare una soluzione in Outlook in cui l'utente preme un nuovo pulsante di posta elettronica e viene visualizzata una nuova finestra di posta elettronica e l'utente prova a inserire un allegato trascinando un file o inserendo un allegato di inserimento. una conferma prima di aggiungerla come Sì/No. Se l'utente colpisce sì allora va come previsto significa che l'allegato viene aggiunto se NO, quindi non dovrebbe essere aggiunto nulla.

Problemi correlati