Python sin necesidad de bajarnos librerias adicionales podemos enviar email por stmp donde con un correo y su contraseña podemos hacer envio garantizado que llegue al buzon de entrada.
El script tiene comentarios para detallar el funcionamiento.
# importamos la libreria smtplib (no es necesario instalarlo)
import smtplib
# importamos librerias para construir el mensaje
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# definimos los correo de remitente y receptor
##se envia un mail a
addr_to = 'luizmirodriguez@gmail.com'
##el mail sale desde el correo
addr_from = 'info@luisrodriguez.pe'
# Define SMTP email server details
smtp_server = 'mail.dominio.com.pe'
smtp_user = 'lrodriguez@dominio.com.pe'
smtp_pass = '**********'
# Construimos el mail
msg = MIMEMultipart()
msg['To'] = addr_to
msg['From'] = addr_from
msg['Subject'] = 'Prueba'
#cuerpo del mensaje en HTML y si fuera solo text puede colocar en el 2da parametro 'plain'
msg.attach(MIMEText('< h1>titulo de mensaje h1>< p>cuerpo de mensaje p>','html'))
# inicializamos el stmp para hacer el envio
server = smtplib.SMTP(smtp_server)
server.starttls()
#logeamos con los datos ya seteamos en la parte superior
server.login(smtp_user,smtp_pass)
#el envio
server.sendmail(addr_from, addr_to, msg.as_string())
#apagamos conexion stmp
server.quit()
Pero si desean adjuntar en el mail datos adjuntos python tambien nos permite eso.
agregando 2 librerias mas
#importamos librerias para adjuntar
from email.MIMEBase import MIMEBase
from email import encoders
Y cargamos el archivo.
#adjuntamos fichero de texto pero puede ser cualquer tipo de archivo
##cargamos el archivo a adjuntar
fp = open('/tmp/log_envio.txt','rb')
adjunto = MIMEBase('multipart', 'encrypted')
#lo insertamos en una variable
adjunto.set_payload(fp.read())
fp.close()
#lo encriptamos en base64 para enviarlo
encoders.encode_base64(adjunto)
#agregamos una cabecera y le damos un nombre al archivo que adjuntamos puede ser el mismo u otro
adjunto.add_header('Content-Disposition', 'attachment', filename='nombre_que_deseamos_que_tenga_el_adjunto.txt')
#adjuntamos al mensaje
msg.attach(adjunto)
Y este seria el codigo final para el envio de correo con datos adjuntos en python
# importamos la libreria smtplib (no es necesario instalarlo)
import smtplib
# importamos librerias para construir el mensaje
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
#importamos librerias para adjuntar
from email.MIMEBase import MIMEBase
from email import encoders
# definimos los correo de remitente y receptor
##se envia un mail a
addr_to = 'luizmirodriguez@gmail.com'
##el mail sale desde el correo
addr_from = 'info@luisrodriguez.pe'
# Define SMTP email server details
smtp_server = 'mail.dominio.com.pe'
smtp_user = 'lrodriguez@dominio.com.pe'
smtp_pass = '**********'
# Construimos el mail
msg = MIMEMultipart()
msg['To'] = addr_to
msg['From'] = addr_from
msg['Subject'] = 'Prueba'
#cuerpo del mensaje en HTML y si fuera solo text puede colocar en el 2da parametro 'plain'
msg.attach(MIMEText('< h1>titulo de mensaje h1>< p>cuerpo de mensaje p>','html'))
#adjuntamos fichero de texto pero puede ser cualquer tipo de archivo
##cargamos el archivo a adjuntar
fp = open('/tmp/log_envio.txt','rb')
adjunto = MIMEBase('multipart', 'encrypted')
#lo insertamos en una variable
adjunto.set_payload(fp.read())
fp.close()
#lo encriptamos en base64 para enviarlo
encoders.encode_base64(adjunto)
#agregamos una cabecera y le damos un nombre al archivo que adjuntamos puede ser el mismo u otro
adjunto.add_header('Content-Disposition', 'attachment', filename='nombre_que_deseamos_que_tenga_el_adjunto.txt')
#adjuntamos al mensaje
msg.attach(adjunto)
# inicializamos el stmp para hacer el envio
server = smtplib.SMTP(smtp_server)
server.starttls()
#logeamos con los datos ya seteamos en la parte superior
server.login(smtp_user,smtp_pass)
#el envio
server.sendmail(addr_from, addr_to, msg.as_string())
#apagamos conexion stmp
server.quit()
este script de python lo podemos ejecutar desde una consola directamente para que lo prueben, Deben copiar el codigo a un archivo con extencion py y ejecutar en consola desde linux, windows o mac
root> python envio.py