Questo non è esattamente un nuovo argomento, ma quando avevo bisogno di farlo, Ho trovato un sacco di "perché non questo lavoro per me" e non troppe risposte dirette. Spero che qualcuno trova questo utile.
Il seguente frammento di codice invierà un'e-mail utilizzando il mio account gmail per farlo, inclusi gli allegati:
utilizzando System.net.mail; utilizzando System.net; NetworkCredential loginInfo = Nuovo NetworkCredential("[Il mio ID di Gmail]", "[Mia Password Gmail]"); MailMessage msg = Nuovo MailMessage(); msg.From = Nuovo Classe MailAddress("[M Id Gmail]@ gmail.com"); msg.To.Add(Nuovo Classe MailAddress("paul.galvin@arcovis.com")); msg.Soggetto = "Test infopath dev soggetto"; msg.Corpo = "<html><corpo><forte>Un messaggio forte.</forte></corpo></html>"; msg.IsBodyHtml = true; foreach (stringa aFile in NIPFD.GetAttachmentNamesAndLocations()) { msg.Attachments(Nuovo Allegato(aFile)); } // Aggiunta di allegati. SmtpClient client = Nuovo SmtpClient("smtp.gmail.com"); client.Proprietà EnableSsl = true; client.UseDefaultCredentials = falso; client.Credentials = loginInfo; client.Port = 587; client.Proprietà EnableSsl = true; client.Invia(msg); |
Pochi bit della chiave che mi ha rallentato e altre osservazioni / Note:
- La prima linea che crea l'oggetto loginInfo deve utilizzare gmail di che ID spogliato "@ gmail.com”. Così, Se è il mio indirizzo di posta elettronica di gmail "sharepoint@gmail.com"e la mia password è"xyzzy"quindi la linea sarebbe simile:
NetworkCredential loginInfo = Nuovo NetworkCredential("sharepoint", "xyzzy");
- Il mio account gmail è impostata per l'utilizzo di SSL e che non era un problema.
- C'è alcune informazioni contrastanti là fuori su quello che porta da utilizzare. Ho usato la porta 587 e ha funzionato bene per me.
- Nel mio caso, Ho anche bisogno di inviare allegati. Tale oggetto NIPFD è un metodo che sa dove sono mio allegati. Restituisce un percorso completamente (e. g. "c:\tempattachment1.jpg". Nella mia prova, Ho avuto due allegati ed entrambi hanno funzionato bene.
Utilizzato visual studio 2008 per scrivere questo codice.
</fine>
Seguimi su Twitter a http://www.twitter.com/pagalvin
Semplice e pulito…
Grazie per la condivisione.
Il blog del Team di PowerShell ha recentemente avuto un post simile che ho trovato prezioso come un amministratore di server. Visual Studio è grande, ma molti dei miei coetanei non sono sviluppatori e non hanno una licenza acquistata. PowerShell è più accessibile a loro e si sente più come la riga di comando. Solo un suggerimento per tutti gli amministratori là fuori.
Meglio,
Jeff (www.spjeff.com / @ spjeff)
L'invio di email automatizzata con Send-MailMessage
http://blogs.msdn.com/powershell/archive/2009/10/30/sending-automated-emails-with-send-mailmessage-convertto-html-and-the-powershellpack-s-taskscheduler-module.aspx