Miguelangelgonzalez

Sin viento, el pasto no se mueve. Sin software, el hardware es inútil.

Log4net con Gmail

Publicado por Miguel Gonzalez en 23 Diciembre 2008

Como el servidor de correo de gmail tiene ssl tenemos que realizar unos ajustes en una clase personalizada para tal fin. Para esto vamos a heredar de log4net.Appender.SmtpAppender para agregar estas nuevas caracteristicas. De esta forma nace la clase MyApp.SmtpSslAppender que usaremos siempre que queramos enviar nuestro logs atraves de una cuenta gmail.

public class SmtpSslAppender : log4net.Appender.SmtpAppender
{
private bool m_enableSsl = true;
public bool EnableSsl
{
get{return m_enableSsl;}
set{this.m_enableSsl = value;}
}

protected override void SendEmail(string messageBody) {
SmtpClient smtpClient = new SmtpClient();
if( SmtpHost != null & SmtpHost.Length > 0 ){
smtpClient.Host = SmtpHost;
}

smtpClient.Port = Port;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = EnableSsl;

if( Authentication == SmtpAuthentication.Basic ){
smtpClient.Credentials = new System.Net.NetworkCredential(Username, Password);
}else if( Authentication == SmtpAuthentication.Ntlm ){
smtpClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
}

MailMessage mailMessage = new MailMessage();
mailMessage.Body = messageBody;
mailMessage.From = new MailAddress(From);
mailMessage.To.Add(To);
mailMessage.Subject = Subject;
mailMessage.Priority = Priority;

smtpClient.Send(mailMessage);
}
}

A continuacion se ve como dentro del web.config se hace uso de esta nueva clase.

<appender name=”SmtpSslAppender” type=”MyApp.SmtpSslAppender”>
<to value=”xxx@gmail.com” />
<from value=”yyy@gmail.com” />
<subject value=”LoggerName” />
<smtpHost value=”smtp.gmail.com” />
<bufferSize value=”1″ />
<port value=”587″ />
<lossy value=”false” />
<authentication value=”Basic” />
<userName value=”usuario” />
<password value=”clave” />
<layout type=”log4net.Layout.PatternLayout”>
<conversionPattern value=”%newline%date [%thread] %-5level %logger [%property{NDC}] – %message%newline%newline%newline” />
</layout>
<filter type=”log4net.Filter.LevelRangeFilter”>
<levelMin value=”FATAL”/>
<levelMax value=”FATAL”/>
</filter>
</appender>

Una respuesta para “Log4net con Gmail”

  1. Seba escribió

    Muy buen articulo, me va a ser muy util. Gracias ;)

Escribe un comentario

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>