soggetti e-mail dinamici con Elmah?
Domanda
Sto utilizzando la funzionalità di errorMail Elmah per inviare una e-mail quando ASP.NET incontra un errore. Esso consente di configurare le impostazioni SMTP, così come a livello di codice un mittente, destinatario e soggetto.
La mia domanda è: Posso utilizzare un soggetto dinamico ? In particolare, vorrei utilizzare la proprietà Exception.Message come il mio soggetto, in modo che io posso dire quello che l'errore è circa appena dalla linea oggetto dell'e-mail.
Non v'è alcuna documentazione, e da una rapida scansione del codice sorgente sembra impossibile senza modificare il codice, ma ho pensato di fare la domanda in ogni modo.
codice sorgente rilevanti:
Soluzione
Doh! La risposta è in 454 di ErrorMailModule.cs :
string subjectFormat = Mask.EmptyString(this.MailSubjectFormat, "Error ({1}): {0}");
mail.Subject = string.Format(subjectFormat, error.Message, error.Type)
.Replace('\r', ' ')
.Replace('\n', ' ');
È possibile utilizzare {0} per il messaggio e {1} per il tipo.
Altri suggerimenti
Ho cambiato l'oggetto del messaggio dal file web.config in questo modo:
<errorMail from="..." subject="Some subject: {0}">
dove {0} sarà il messaggio di eccezione.
È possibile controllare questo articolo per ulteriori informazioni http://weblogs.asp.net/jeffwids/format-the-email-subject-in-the-elmah-error-logging-module