View Full Version : [C# + ASP.NET] Inviare email outlook da applicazione web
Buongiorno, online ho trovato diverse soluzioni su come richiamare creare una mail richiamando outlook all'interno della propria applicazione.
Problema: il codice che ho trovato è il seguente...
private void CreateMailItem()
{
Outlook.MailItem mailItem = (Outlook.MailItem)
this.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.Subject = "This is the subject";
mailItem.To = "someone@example.com";
mailItem.Body = "This is the message.";
mailItem.Importance = Outlook.OlImportance.olImportanceLow;
mailItem.Display(false);
}
e nonostante abbia importato il riferimento microsoft.office.interop.outlook questo codice non funziona... e non credo sia nemmeno compatibile con la versione 2007 di outlook. Se sapessi come fare inizializzerei il tutto così come ho fatto per gli appuntamenti:
System.Text.StringBuilder sbICSFile =
new System.Text.StringBuilder();
DateTime dtNow = DateTime.Now;
sbICSFile.AppendLine("BEGIN:VCALENDAR");
sbICSFile.AppendLine("VERSION:2.0");
sbICSFile.AppendLine("PRODID:-//ICSTestCS/");
sbICSFile.AppendLine("CALSCALE:GREGORIAN");
... ma non trovo nulla che mi aiuti...
help :mc: qualcuno ha qualche idea?
tomminno
06-04-2010, 18:54
Scusa ma perchè devi mandare un email proprio tramite Outlook?
Non ti bastano le classi MailMessage e SmtpClient?
Oltretutto per far funzionare il codice devi installare Outlook sul server.
I-Warrior
06-04-2010, 21:11
mmm
Scusa ma perchè devi mandare un email proprio tramite Outlook?
Non ti bastano le classi MailMessage e SmtpClient?
Oltretutto per far funzionare il codice devi installare Outlook sul server.
No purtroppo non mi bastano. Mi è stato chiesto esplicitamente di utilizzare outlook -.- il punto è che tutto il codice che ho trovato online non mi funziona... :cry:
Come fai a dire che non funziona? Ovvero, quali sono le cose che hai controllato per verificare che non ha funzionato?
Se utilizzerai questa strada, molto probabilmente compilerai una nuova email sul server, ma ci sara' bisogno di qualcuno che prema "Invia".
Quindi dovresti terminare con
mailItem.Send();
Come fai a dire che non funziona? Ovvero, quali sono le cose che hai controllato per verificare che non ha funzionato?
Se utilizzerai questa strada, molto probabilmente compilerai una nuova email sul server, ma ci sara' bisogno di qualcuno che prema "Invia".
Quindi dovresti terminare con
mailItem.Send();
Si scusa non ho specificato io bene. Voglio proprio che mi si apra la finestra per l'invio di una nuova mail e che sia poi l'utente a decidere se inviarla o meno con il tool di outlook. Le uniche cose che io vado a precompilare è destinatario, mittente, oggetto e corpo.
Facendo un semplice copia e incolla dico che non funziona. Non mi riconosce i comandi nonostante la dll sia quella che suggeriscono.
Inoltre se provo ad adattare il codice provo a fare una cosa di questo tipo;:
mailitem mail = new mailitem();
Mi dice che è impossibile inizializzare così... ecc ecc
E' per questo che sto cercando un modo per aprire la finestra di outlook utilizzato un comando come questo
sbICSFile.AppendLine("BEGIN:VCALENDAR");
Si scusa non ho specificato io bene. Voglio proprio che mi si apra la finestra per l'invio di una nuova mail e che sia poi l'utente a decidere se inviarla o meno con il tool di outlook. Le uniche cose che io vado a precompilare è destinatario, mittente, oggetto e corpo.
Facendo un semplice copia e incolla dico che non funziona. Non mi riconosce i comandi nonostante la dll sia quella che suggeriscono.
Inoltre se provo ad adattare il codice provo a fare una cosa di questo tipo;:
Mi dice che è impossibile inizializzare così... ecc ecc
E' per questo che sto cercando un modo per aprire la finestra di outlook utilizzato un comando come questo
Il tuo problema e' che il codice ASP.net viene eseguto sul server, e non sul client.
Quindi, cosi' facendo, potresti al limite aprire una form sul server, e non sol client. Direi di poco utilizzo.
In qualsiasi caso se vuoi visualizzare qualcosa, anche se non ho controllato affatto la documentazione, direi che questo metodo e' sbagliato:
mailItem.Display(false);
Non ho invece capito il commento relativo al calendario. Quella parte di codice serve per costriure semplicemente una stringa, che verra' forse utilzzata in seguito, e non per gestire un calendario.
tomminno
07-04-2010, 10:45
No purtroppo non mi bastano. Mi è stato chiesto esplicitamente di utilizzare outlook -.- il punto è che tutto il codice che ho trovato online non mi funziona... :cry:
Scusa ma devi specificare meglio cosa ti è stato chiesto di fare.
Te vuoi integrare Outlook nell'interfaccia web?
Ti si deve aprire Outlook sul client? In modo standard non puoi fare altro che usare un link con "mailto:"
Altrimenti devi svilupparti un ActiveX (e se necessario plugin per tutti gli altri browser) che avvi Outlook sul client con i campi precompilati.
Ti serve comunque codice che giri lato utente non sul server.
Perchè non potresti fare una pagina che mostra i dati dell'email con un tasto invia e inviarla dal server?
Scusa ma devi specificare meglio cosa ti è stato chiesto di fare.
Te vuoi integrare Outlook nell'interfaccia web?
Ti si deve aprire Outlook sul client? In modo standard non puoi fare altro che usare un link con "mailto:"
Altrimenti devi svilupparti un ActiveX (e se necessario plugin per tutti gli altri browser) che avvi Outlook sul client con i campi precompilati.
Ti serve comunque codice che giri lato utente non sul server.
Perchè non potresti fare una pagina che mostra i dati dell'email con un tasto invia e inviarla dal server?
Mi è stato chiesto di poter utilizzare la posta elettronica di outlook (la parte dellla creazione di una nuova mail) nel caso in cui qualcuno voglia mandare appunti e altre cose utilizzando l'interfaccia che è più conosciuta da loro.
Il "mailto" non mi basterebbe nel caso in cui volessi precompilare alcuni campi della mail...
Non ho invece capito il commento relativo al calendario. Quella parte di codice serve per costriure semplicemente una stringa, che verra' forse utilzzata in seguito, e non per gestire un calendario.
Semplice, dalla mia applicazione, se possiedi un outlook, posso farti inviare degli appuntamenti precompilando campi come quello dei partecipanti, necessari o non, l'oggetto, il corpo, ecc ecc
Tutto questo è inviando, come riga di comando, il codice che ho inserito (ovviamente ho inserito solamente la prima parte...)
tomminno
07-04-2010, 13:28
Mi è stato chiesto di poter utilizzare la posta elettronica di outlook (la parte dellla creazione di una nuova mail) nel caso in cui qualcuno voglia mandare appunti e altre cose utilizzando l'interfaccia che è più conosciuta da loro.
Il "mailto" non mi basterebbe nel caso in cui volessi precompilare alcuni campi della mail...
ASP.NET in questo non può esserti di aiuto.
Quello che serve a te è un'applicazione desktop, o un ActiveX se proprio l'evento scatenante deve partire da una interfaccia web.
Hai provato a cercare con google?
Uno dei primi risultati che ho ottenuto è questo:
http://support.microsoft.com/kb/819398 suppongo che sia funzionante, data la fonte, e il titolo mi sembra attinente.
Gurada sembra interessante. Provo e vi faccio sapere. :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.