Enviar archivos por email con python



     style="display:inline-block;width:728px;height:90px"
     data-ad-client="ca-pub-5126364088863607"
     data-ad-slot="9520827110">



Enviar imagenes o archivos a traves de gmail con python es muy sencillo primero se deben de importar las siguientes librerias que sirven para la conexion por socket
# Importamos librerías
import smtplib
import mimetypes

enseguida se importan algunos modulos necesario que se extraen de las importaciones antes echas
# Importamos los módulos necesarios
from email.MIMEMultipart import MIMEMultipart
from email.MIMEImage import MIMEImage
from email.Encoders import encode_base64

enseguida se escriben los datos necesarios que se necesita para enviar un correo tanto el correo origen cono el correo destino y un asunto si es necesario.



# Creamos objeto Multipart, quien será el recipiente que enviaremos
msg = MIMEMultipart()
msg['From']="desde@gmail.com"
msg['To']="hasta@alu.uct.cl"
msg['Subject']="asunto"

Luego se abre el archivo que se desea emviar mediante correo electronico, con file = open() se le pasa como parametro el archivo ya sea imagen, winrar, etc. se debe de especificar, luego se define que el archivo estara en modo lectura binaria (rb). una vez hecho lo anterior se agrega la imagen al correo y se le agrega un nombre distintivo a la imagen o puede ser el mismo nombre de origen.

# Adjuntamos Imagen
file = open("fondo.jpg", "rb")
attach_image = MIMEImage(file.read())
attach_image.add_header('Content-Disposition', 'attachment; filename = "avatar.png"')
msg.attach(attach_image)

se autentifica la direccion origen correspondiente a un cliente gmail, de lo contrario no funciona la aplicacion
# Autenticamos
mailServer = smtplib.SMTP('smtp.gmail.com',587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login("desdel@gmail.com","pasword")

finalmente se envia el archivo adjunto y se cierra la conexion con el mail server
# Enviamos
mailServer.sendmail("desde@gmail.com", "hasta@alu.uct.cl", msg.as_string())
# Cerramos conexión
mailServer.close()

Código completo:



# Importamos librerías
import smtplib
import mimetypes

# Importamos los módulos necesarios
from email.MIMEMultipart import MIMEMultipart
from email.MIMEImage import MIMEImage
from email.Encoders import encode_base64

# Creamos objeto Multipart, quien será el recipiente que enviaremos
msg = MIMEMultipart()
msg['From']="desde@gmail.com"
msg['To']="hasta@alu.uct.cl"
msg['Subject']="Correo con imagen Adjunta"

# Adjuntamos Imagen
file = open("fondo.jpg", "rb")
attach_image = MIMEImage(file.read())
attach_image.add_header('Content-Disposition', 'attachment; filename = "avatar.png"')
msg.attach(attach_image)

# Autenticamos
mailServer = smtplib.SMTP('smtp.gmail.com',587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login("desde@gmail.com","pasword")

# Enviamos
mailServer.sendmail("desde@gmail.com", "hasta@alu.uct.cl", msg.as_string())

# Cerramos conexión
mailServer.close()



Entradas más populares de este blog

Convertir decimal a binario, octal y hexadecima

Crear servicio web en Visual C# (WebService)