[Aplicación de combate real de Python] Python envía enseñanza de combate real por correo electrónico a Gmail

Inserte la descripción de la imagen aquí

En la mayoría de los sitios web actuales, ya se trate de un registro exitoso, restablecimiento de una contraseña, noticias preferenciales o nuevos productos en los estantes, etc., los clientes serán notificados por correo electrónico, que es una forma indispensable de entregar mensajes en el sitio web. Además, algunos desarrolladores notificarán la información rastreada por correo electrónico cuando ejecuten el rastreador. De la situación anterior, podemos saber que el correo electrónico se usa con frecuencia y su importancia para las funciones del sitio web. Por lo tanto, este artículo utilizará la herramienta de desarrollo de Visual Studio Code para presentar cómo enviar correos electrónicos a través de Python y personalizar la plantilla de correo electrónico.

Contenido de correo electrónico básico

Obtén la contraseña de la aplicación de Gmail

Configurar el servidor SMTP (servidor SMTP)

Agregar imágenes al contenido del correo electrónico

Plantillas de correo electrónico personalizadas (Plantillas)

1. Contenido básico del correo electrónico

Primero, consulte la categoría MIMEMultipart en la biblioteca estándar de correo electrónico de Python (Biblioteca estándar), como se muestra en el siguiente ejemplo:

desde email.mime.multipart importar MIMEMultipart

El subpaquete mime (Extensiones multipropósito de correo de Internet) del paquete de correo electrónico (Paquete) es el tipo de medio de Internet, que define el formato estándar para transmitir correo electrónico en la red. En el subpaquete multiparte que se encuentra debajo, la categoría MIMEMultipart habilita electrónico El formato del correo electrónico contiene texto sin formato o contenido HTML. Y un correo electrónico básico tiene título, remitente, destinatario y contenido. Puede configurar los datos de cada campo a través del objeto MIMEMultipart, como se muestra en el siguiente ejemplo:

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText



content = MIMEMultipart()  #建立MIMEMultipart物件

content["subject"] = "Learn Code With Mike"  #邮件标题

content["from"] = "[email protected]"  #寄件者

content["to"] = "[email protected]" #收件者

content.attach(MIMEText("Demo python send email"))  #邮件內容

En el ejemplo, el contenido del correo se configura mediante el método adjuntar (Método) del objeto MIMEMultipart, y el contenido debe hacer referencia a la categoría MIMEText para crear el objeto. El primer parámetro se pasa en el contenido del texto y el segundo parámetro puede especificar texto sin formato o HTML. El valor predeterminado es Para texto sin formato. El contenido HTML del correo electrónico se explicará cuando personalicemos la plantilla de correo electrónico en la Sección 5 de este artículo.

2. Obtención de la contraseña de la aplicación Gmail
En el proyecto Python, si desea enviar correos electrónicos a través del servidor SMTP de Gmail, debe obtener la contraseña exclusiva de la aplicación, ya que Google considera que la biblioteca smtplib de Python es de alto riesgo, por lo que No es posible enviar correos electrónicos a través de la aplicación con la contraseña original de Gmail. Los siguientes son los pasos para obtener la contraseña de la aplicación:

Paso 1: ingrese la cuenta de Google del remitente.

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

Paso 2: Haga clic en la pestaña de seguridad en la columna de la izquierda y luego configure la verificación en dos pasos.

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

Paso 3: Después de completar la configuración de dos pasos, verá una contraseña de aplicación adicional a continuación.

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

Paso 4: Seleccione Otros en el lugar donde selecciona la aplicación.

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

Paso 5: Luego ingrese el nombre de la aplicación y haga clic en Generar.

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

Paso 6: Finalmente, puede obtener la contraseña de la aplicación.

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

3. Configure el servidor SMTP (servidor SMTP)
Una vez completado el contenido del correo electrónico en el proyecto Python, el siguiente paso es configurar el SMTP de Gmail para que se envíe por completo. El método de configuración es el siguiente:

import smtplib
with smtplib.SMTP(host="smtp.gmail.com", port="587") as smtp:  # 設定SMTP伺服器
    try:
        smtp.ehlo()  # 驗證SMTP伺服器
        smtp.starttls()  # 建立加密傳輸
        smtp.login("[email protected]", "應用程式密碼")  # 登入寄件者gmail
        smtp.send_message(content)  # 寄送郵件
        print("Complete!")
    except Exception as e:
        print("Error message: ", e)

Consulte el módulo smtplib (Módulo) y luego especifique la ubicación del servidor y el número de puerto a través del argumento de palabra clave (Argumento de palabra clave) de acuerdo con el SMTP utilizado. Además, la declaración with de Python se usa aquí para liberar recursos automáticamente cuando se envía el correo. Después de crear el objeto SMTP, use el método ehlo () para verificar si el servidor SMTP y el número de puerto son correctos. El siguiente paso es llamar al método starttls () para establecer la transmisión TLS (Seguridad de la capa de transporte), que es una transmisión de red Protocolo de seguridad para proteger la seguridad e integridad de los datos. Finalmente, inicie sesión en la cuenta de Gmail del remitente y envíe el correo. Se recomienda utilizar el mecanismo de manejo de excepciones de Python, porque en el proceso de envío de correos electrónicos, existe una gran posibilidad de que se produzcan errores de excepción. Inicie sesión en el Gmail del destinatario y podrá ver el correo electrónico que se acaba de enviar, como se muestra en el siguiente ejemplo:

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

4. Agregar imágenes
al contenido del correo electrónico Si desea agregar imágenes a los correos electrónicos, debe citar la categoría MIMEImage en el proyecto Python y hacer referencia a la biblioteca pathlib para leer las imágenes, como se muestra en el siguiente ejemplo:

from email.mime.image import MIMEImage
from pathlib import Path

Agrega una imagen al proyecto. Este artículo usa koala.jpg como demostración. Luego, en el lugar donde se establece el contenido del correo, se crea un objeto MIMEImage y se pasa el código binario de la imagen. El read_bytes () del objeto Path se puede utilizar. Método para leer, el siguiente ejemplo:

content = MIMEMultipart()  # 建立MIMEMultipart物件
content["subject"] = "Learn Code With Mike"  # 郵件標題
content["from"] = "[email protected]"  # 寄件者
content["to"] = "[email protected]"  # 收件者
content.attach(MIMEText("Demo python send email"))  # 郵件純文字內容
content.attach(MIMEImage(Path("koala.jpg").read_bytes()))  # 郵件圖片內容

Una vez completada la entrega, inicie sesión en el Gmail del destinatario y podrá ver que el contenido del correo electrónico ha agregado una imagen correctamente, como se muestra en el siguiente ejemplo:

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

5. Plantillas de correo electrónico personalizadas (Plantillas) En la
práctica, además de los correos electrónicos de texto puro, generalmente existen oportunidades para personalizar el formato del contenido del correo electrónico de acuerdo con la situación. Por ejemplo, algunos textos deben estar coloreados, en negrita e hipervínculos. Espere, en este momento, puede utilizar HTML para personalizar las plantillas de correo electrónico de acuerdo con las diferentes necesidades. En el proyecto Python, agregue un archivo llamado success_template.html, asumiendo que cuando el usuario se registre correctamente, desea utilizar esta plantilla de correo electrónico para la notificación. Antes de comenzar a diseñar la versión de correo de muestra, aquí hay un pequeño truco para enseñarle. Después de abrir el archivo success_template.html, puede ver el modo de idioma en la esquina inferior derecha de Visual Studio Code, como se muestra en el siguiente ejemplo:

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

Si ya es HTML, no es necesario cambiarlo. Si se muestran otros idiomas, haga clic en el cuadro rojo, ingrese HTML en el lugar de búsqueda y seleccione. A continuación, ingrese el símbolo! En la primera línea del archivo success_template.html, presione la tecla Tab y el código HTML básico se generará automáticamente, como se muestra en el siguiente ejemplo:

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

Dado que la plantilla de correo electrónico no requiere el contenido de la etiqueta, puede eliminarla y luego ingresar el contenido formateado del correo electrónico en el área de la etiqueta, como se muestra en el siguiente ejemplo:

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

En esta muestra de correo electrónico, se establece una variable de usuario, con un símbolo $ delante de ella para indicar que el código Python pasa dinámicamente este parámetro y se muestra la fuente en negrita. La cadena de Google a continuación ha agregado hipervínculos. De vuelta al programa principal de Python, haga referencia a la categoría Plantilla del módulo de cadena (Módulo) para reemplazar los valores de los parámetros en la plantilla de correo electrónico. El siguiente ejemplo:

from string import Template

A continuación, cree un objeto Plantilla y pase el contenido de la plantilla de correo electrónico, lo que se puede lograr mediante el método read_text () del objeto Path. Finalmente, llame al método substitute () del objeto Plantilla para establecer los valores de los parámetros en la plantilla de correo electrónico. Los parámetros se pueden pasar al diccionario Python (Diccionario) o argumentos de palabra clave (Argumento de palabra clave), como se muestra en el siguiente ejemplo :

template = Template(Path("success_template.html").read_text())
body = template.substitute({
    
     "user": "Mike" })

Pase el cuerpo en el contenido de correo especificado del objeto MIMEMultipart y configúrelo en el formato HTML, como se muestra en la línea 10 del siguiente ejemplo:

content = MIMEMultipart()  # 建立MIMEMultipart物件
content["subject"] = "Learn Code With Mike"  # 郵件標題
content["from"] = "[email protected]"  # 寄件者
content["to"] = "[email protected]"  # 收件者
template = Template(Path("success_template.html").read_text())
body = template.substitute({
    
     "user": "Mike" })
content.attach(MIMEText(body, "html"))  # HTML郵件內容

Inicie sesión en el Gmail del destinatario y podrá ver los resultados de la plantilla de correo electrónico personalizada, como se muestra en el siguiente ejemplo:

Haga clic para ingresar la descripción de la imagen (hasta 18 caracteres)

6. Resumen
Espero que después de leer este artículo, pueda entender cómo enviar correos electrónicos a través de Python y tener la capacidad de personalizar las plantillas de correo electrónico necesarias, que luego se pueden aplicar a sus respectivos proyectos. Si encuentra algún problema durante el ejercicio, deje un mensaje para compartir.

Supongo que te gusta

Origin blog.csdn.net/wlcs_6305/article/details/114632202
Recomendado
Clasificación