Ho bisogno di aprire una nuova finestra di posta elettronica con un allegato precompilato quando un utente fa clic su un pulsante o un collegamento nella mia applicazione.Come aprire la nuova finestra di posta di Outlook con allegato prepopolato
risposta
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 ..
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
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
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.
Penso che questa risposta dovrebbe essere contrassegnata come la soluzione. – Bronek
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.
[Cosa hai provato?] (Http://mattgemmell.com/2008/12/08/what-have-tried/) –