Este tutorial le dará una introducción a SMTP, un módulo de Python utilizado para enviar correo. También demostrará cómo enviar diferentes tipos de correo electrónico, como correos electrónicos de texto simple, correos electrónicos con adjuntos y correos electrónicos con contenido HTML.
El Protocolo simple de transferencia de correo (SMTP) maneja el envío y enrutamiento del correo electrónico entre los servidores de correo.
En Python, el smtplib
el módulo define un objeto de sesión de cliente SMTP que se puede usar para enviar correo a cualquier máquina de Internet con un demonio de escucha SMTP o ESMTP.
Aquí es cómo crear un objeto SMTP.
importar smtplib server = smtplib.SMTP (host = 'host_address', port = your_port)
La siguiente secuencia de comandos le permitirá enviar un correo electrónico a través del servidor SMTP de Gmail. Sin embargo, Google no permitirá el inicio de sesión a través de smtplib
porque ha marcado este tipo de inicio de sesión como "menos seguro". Para resolver esto, vaya a https://www.google.com/settings/security/lesssecureapps mientras está conectado a su cuenta de Google y "Permitir aplicaciones menos seguras". Ver captura de pantalla abajo.
Seguiremos los siguientes pasos para llevar a cabo este proceso:
MIMEMultipart
mensaje objeto y adjunte los encabezados relevantes a él, es decir, De, Para y Asunto.MIMEMultipart
objeto.Este proceso es tan simple como se muestra a continuación..
# importar los paquetes necesarios desde email.mime.multipart importar MIMEMultipart desde email.mime.text importar MIMEText importar smtplib # crear mensaje objeto instancia msg = MIMEMultipart () mensaje = "Gracias" # configurar los parámetros del mensaje contraseña = "su_punta_usuario" msg ['From'] = "your_address" msg ['To'] = "to_address" msg ['Subject'] = "Subscription" # agregue en el cuerpo del mensaje msg.attach (MIMEText (mensaje, 'plain')) # create server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Credenciales de inicio de sesión para enviar el servidor server.login (msg ['From'], password) # envíe el mensaje a través del servidor . server.sendmail (msg ['From'], msg ['To'], msg.as_string ()) server.quit () imprime "correo electrónico enviado con éxito a% s:"% (msg ['To'])
Tenga en cuenta que las direcciones 'Hasta' y 'Desde' deben incluirse en los encabezados de los mensajes explícitamente.
En este ejemplo, vamos a enviar un correo electrónico con un archivo adjunto de imagen. El proceso es similar al envío de un correo electrónico de texto plano..
MIMEMultipart
mensaje objeto y adjunte los encabezados relevantes a él, es decir, De, Para y Asunto.MIMEMultipart
objeto.# send_attachment.py # importar los paquetes necesarios desde email.mime.multipart importar MIMEMultipart desde email.MIMEImage importar MIMEImage desde email.mime.text importar MIMEText importar smtplib # crear mensaje objeto instancia msg = MIMEMultipart () # configurar los parámetros de la contraseña del mensaje = "your_password" msg ['From'] = "your_address" msg ['To'] = "to_address" msg ['Subject'] = "Photos" # adjuntar imagen al cuerpo del mensaje msg.attach (MIMEImage (archivo ("google .jpg "). read ())) # create server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Credenciales de inicio de sesión para enviar el servidor server.login (msg ['From' ], contraseña) # enviar el mensaje a través del servidor. server.sendmail (msg ['From'], msg ['To'], msg.as_string ()) server.quit () imprime "correo electrónico enviado con éxito a% s:"% (msg ['To'])
los MIMEImage
clase es una subclase de MIMENonMultipart
que se utiliza para crear objetos de mensaje MIME de tipos de imagen.Otras clases disponibles incluyenMIMEMessage
y MIMEAudio
.
Lo primero que vamos a hacer es crear una plantilla de correo electrónico HTML..
Aquí está el código HTML para la plantilla, y contiene dos columnas de la tabla, cada una con una imagen y un contenido de vista previa. Si prefiere una solución profesional, ya preparada, obtenga nuestras mejores plantillas de correo electrónico. Tenemos una serie de opciones de respuesta con funciones fáciles de personalizar para comenzar.
Boletín electrónico de Tutsplus
|
La plantilla finalmente se verá así cuando esté completa:
A continuación se muestra el script para enviar un correo electrónico con contenido HTML. El contenido de la plantilla será nuestro mensaje de correo electrónico..
import smtplib import email.message server = smtplib.SMTP ('smtp.gmail.com:587') email_content = "" "Boletín electrónico de Tutsplus
|
Ejecute su código y, si no se produce ningún error, el correo electrónico se realizó correctamente. Ahora ve a tu bandeja de entrada y deberías ver tu correo electrónico como contenido HTML bien formateado.
Este tutorial ha cubierto la mayor parte de lo que se necesita para enviar correos electrónicos para su aplicación. Hay varias API disponibles para enviar correos electrónicos, por lo que no tiene que empezar desde cero, por ejemplo. SendGrid, pero también es importante entender los conceptos básicos. Para más información, visite la documentación de Python..
Además, no dude en ver lo que tenemos disponible para la venta y para el estudio en Envato Market, y haga cualquier pregunta y proporcione sus valiosos comentarios utilizando el siguiente feed..