Succede spesso di dover spedire della mail da componenti SharePoint come web part, custom page o altro.. Il modello ad oggetti ci offre il metodo SendMail della classe SPUtility, con ben quattro overload diversi.
Il problema è che a volte quel metodo non basta per i nostri scopi, perchè magari abbiamo la necessità di inserire degli indirizzi e-mail nei campi CC e BCC, inserire allegati o comunque effettuate una di quelle attività che normalmente ci vengono offerte dalla classe MailMessage.

Sempre tramite modello ad oggetti però, è possibile recuperare l'indirizzo del server SMTP configurato dalla Central Administration di SharePoint ed utilizzarlo per spedire i nostri messaggi e-mail.
Vediamo come:

MailMessage message = new MailMessage();

message.From = new MailAddress("info@peppedotnet.it");
message.To.Add("info@peppedotnet.it");
message.CC.Add("info@peppedotnet.it");
message.Bcc.Add("info@peppedotnet.it");
message.Subject = "Prova invio da SharePoint";
message.Body = "Corpo del messaggio ....";
message.IsBodyHtml = true;

SPWeb web = SPContext.Current.Web;
string smtpUrl = web.Site.WebApplication.OutboundMailServiceInstance.Server.Address;

SmtpClient smtp = new SmtpClient(smtpUrl);
smtp.Send(message);

Dovete solamente fare attenzione ad utilizzare questo codice dopo che il servizio di Outcoming Mail è stato correttamente configurato dalla Central Administration della vostra farm SharePoint, altrimenti il codice utile a recuperare l'indirizzo del server SMTP tornerà un'eccezione di tipo NullReferenceException.