// post

Programación

Enviar email con valores de una base de datos UTF-8 en Python

Si tenemos un base de datos MySQL y queremos enviar emails usando la librería smptlib de python, nos puede dar más de un quebradero de cabeza si queremos usar la codificación UTF-8. Pongo aquí este breve manual que he hecho con la ayuda de Héctor, un compañero del proyecto en el que estoy trabajando ahora mismo.

Si usamos la librería MySQLdb, tendremos que añadir unos parámetros adicionales para indicarle que nos vamos a conectar a una base de datos con codificación UTF-8.

con = MySQLdb.connect(host, user, passwd, database, charset="utf8", init_command="set names utf8")
con.names = "utf8"

Ahora creamos el mensaje a enviar:

mensaje_email = u‘Código de alarma: %s \n % codigo
mensaje_email+= u‘ID de alarma: %s\n% ID_ALARMA
mensaje_email+= u‘Descripción de alarma: %s\n % descripcion

#Formar mensaje de email tipo MIME.
msg = MIMEText(mensaje_email.encode(‘utf-8′), _charset="UTF-8")
msg[‘Subject’] = subject
msg[‘From’] = email_from
msg[‘Reply-to’] = email_reply_to
msg[‘To’] = email_to

Y por último, lo enviamos a través del servidor de correo:

mailServer = smtplib.SMTP(mail_server)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(username, passwd)
try:    
     mailServer.sendmail(username, to_addr, msg.as_string())
except BaseException, e:
    print "Error al enviar e-mail: %s" % e
mailServer.close()

Comentarios

Los comentarios están cerrados.

Los comentarios están cerrados. Si quieres contactar con el autor, dirígete a la sección de contacto.

Bienvenido a The Power of Mind

The Power of Mind es el blog personal de DraXus, orientado a temas de Informática, Software Libre e Internet. Más sobre el autor…

del.icio.us flickr plurk twitter skype
linkedin facebook tuenti lastfm youtube

Recomendados

Yo participo en el Software Freedom Day 2011
AndaluciaPeople.com
Alhambrismo.com

flickr

Switch to our mobile site