¿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
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 desend_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 encabezadoDarse 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.