Python smtplib возвращает 250 OK, но получатель Gmail никогда не получает электронную почту (отправитель домена компанииPython

Программы на Python
Anonymous
Python smtplib возвращает 250 OK, но получатель Gmail никогда не получает электронную почту (отправитель домена компании

Сообщение Anonymous »

Я использую Python (`smtplib` + `email.mime`) для отправки электронных писем OTP с учетной записи электронной почты нашей компании пользователям (многие из них находятся в Gmail).
Несмотря на то, что клиент показывает 200, в моих тестовых электронных письмах я так и не получил отправленное электронное письмо.
Мой адрес электронной почты отправителя — это адрес электронной почты моей компании, поэтому учетная запись — это адрес электронной почты их собственного бизнес-домена.
После построение сообщения

Код: Выделить всё

msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = sender_email
msg["To"] = to_email
Я создаю SMTP-клиент. Я признаю, что назвал клиент «сервером», что, возможно, не лучший выбор, но стоит опубликовать эту информацию. Позже я могу изменить имя переменной для клиента на «_client».

Затем я отправляю электронное письмо, передавая созданное сообщение. На данный момент я жестко запрограммировал адрес электронной почты компании (адрес электронной почты отправителя) и исходящий порт на 456, и я не думаю, что входящий порт будет использоваться сейчас.

Код: Выделить всё

import smtplib
from email.mime.text import MIMEText
...
.
.
.
try:
# server = smtplib.SMTP_SSL("smtp.gmail.com", 465)

server = smtplib.SMTP_SSL(".com", 465)
server.set_debuglevel(1)
server.login(sender_email, sender_password)
server.send_message(msg)
server.quit()
except Exception as e:
raise EmailServiceError(
f"Error sending email: {e}",
recipient=to_email,
purpose=purpose,
details={"error": str(e)}
)
Это журналы, которые я получаю следующим образом с исправлениями в gatorxxxx.hostgator.com, ,

Код: Выделить всё

Logs:
SMTP Connection Established: gatorxxxx.hostgator.com
Authentication:
235 Authentication succeeded
Sender Accepted:
250 OK - mail from: no-reply@.com
Recipient Accepted:
250 Accepted - rcpt to: @gmail.com
Message Data Sent:
250 OK - id=1w22kd-00000001mHT-3KDl
Content:
Subject: Email Verification Code
From: no-reply@.com
To: @gmail.com
Body: Your email verification code is: 004040
Please enter this code to verify your account.
SMTP Session Closed:
221 gatorxxxx.hostgator.com closing connection
Итак, ретранслятор SMTP принимает сообщение, но получатель Gmail никогда его не получает (даже во входящих/спаме в моих тестах).
Из предыдущей (похожей, хотя и не идентичной) проблемы я вспомнил, что во время отладки я использовал тот же код, показанный выше, для отправки тестового электронного письма коллеге в нашем собственном домене (coworker@.com). Они получили его успешно. Это говорит о том, что поток отправки SMTP работает и что проблема доставки специфична для Gmail (вероятно, политика фильтрации или аутентификации), а не общий сбой отправки.
Вопросы:
  • Является ли мое использование SMTP в Python концептуально правильным?
  • С учетом этих журналов, вероятна ли проблема с доставкой/аутентификацией (SPF/DKIM/DMARC, репутация отправителя, политика ретрансляции), а не проблема с кодом?
  • Какие конкретные проверки мне следует попросить выполнить нашу команду инфра/администраторов (поскольку у меня нет доступа к cPanel)?
Наконец, я проверил домен своей компании на наличие черного списка, но я уверен, что мы разработали приложения, где в прошлом что ж, мы смогли отправлять электронные письма пользователям Gmail и других учетных записей электронной почты.

Хотя может показаться, что проблема повторяется или что мне следует сначала попытаться выполнить все параметры (я явно не добрался до cPanel), причина, по которой я все еще задаю этот вопрос, заключается в том, что у меня сегодня обзор, и мне нужно объяснить пожилым людям, в чем именно заключается проблема, чтобы мы могли быстро начать настройку cPanel, если это так. В противном случае я исправлю это раньше.

Вернуться в «Python»