es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué algunos mensajes de Python smtplib se entregan en la carpeta de spam de Gmail?

Tengo un problema curioso. Cuando envío un mensaje con la función send_email1 en mi script, el mensaje termina en mi carpeta de spam de Gmail, pero cuando uso send_email2, se entrega correctamente en mi bandeja de entrada. El segundo mensaje utiliza la API heredada y supongo que se eliminará en algún momento y que no debería usarlo más.
Muchas gracias por la ayuda.

“`Python
import smtplib
from email.message import EmailMessage
from email.mime.text import MIMEText

def send_email1(asunto: str, contenido: str):

msg = EmailMessage()
msg['From'] = sender
msg['To'] = recipient
msg['Subject'] = asunto
msg.set_content(contenido)

with smtplib.SMTP('mysmtpserver') as s:
s.starttls()
s.send_message(msg)

def send_email2(asunto: str, contenido: str):

msg = MIMEText(contenido)
msg['Subject'] = asunto
msg['From'] = sender
msg['To'] = recipient

with smtplib.SMTP('mysmtpserver') as s:
s.starttls()
s.send_message(msg)

sender = 'sender@abc.com'
recipient = 'Recipient <a href="mailto:recipient@abc.com">recipient@abc.com</a>'

send_email1("Test message from Pyton1", "Test message from Python script. 1")
send_email2("Test message from Pyton2", "Test message from Python script. 2")
“`/recipient@abc.com

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema podría estar relacionado con el funcionamiento del filtro de spam de Gmail. Es posible que el contenido o el formato del mensaje enviado a través de send_email1 active el filtro, mientras que el enviado a través de send_email2 no lo haga.

    Una posible solución a este problema es incluir más información en los encabezados del mensaje, como un campo Responder a o un encabezado Darse de baja de la lista. Esto puede ayudar a establecer más confianza con el filtro de spam de Gmail y aumentar las posibilidades de que el mensaje sea entregado en la bandeja de entrada.

    Otra opción es seguir las pautas de Google para los remitentes masivos y autenticar su dominio con DKIM y SPF. Esto puede ayudar a mejorar la reputación del remitente y reducir la probabilidad de que sus mensajes sean marcados como spam.

    En cuanto a la API antigua utilizada por send_email2, es cierto que podría quedar obsoleta en algún momento en el futuro. Sin embargo, también vale la pena señalar que esta API ha estado presente durante mucho tiempo y aún se utiliza ampliamente. Como con cualquier software, siempre es una buena idea estar al día con las actualizaciones y cambios, pero no hay necesidad de entrar en pánico y dejar de usar una solución que funciona.

Comments are closed.