Python Отправить сообщение на доменную почту - PullRequest
0 голосов
/ 15 ноября 2018

Попытка отправить сообщение электронной почты с помощью smtplib в Python через Gmail:

import smtplib

msg = "\r\n".join([
    "From: " + email_host,
    "To: " + email_recipient,
    "Subject: subject",
    "",
    email_msg
])
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(email_host, email_pwd)
server.sendmail(email_host, email_recipient, msg)
server.quit()

Для популярных сервисов, таких как яндекс, Yahoo и Gmail, он работает отлично. Но невозможно отправить сообщение на доменную почту (login@some_domain.com).

В чем проблема?

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Что ж, при поиске ответа я обнаружил, что служба Google Mail не позволяет отправлять сообщения на доменные письма через SMTP-порт 587, поскольку для этого требуется использовать TLS.

enter image description here

Я решил переключиться на SMTP-порт 465, как сказано в этом сообщении, так что теперь он работает отлично!Кроме того, в целях тестирования я использовал другую почтовую службу (Яндекс), которая поддерживает только SMTP-порт 465 - он также работает.

0 голосов
/ 15 ноября 2018

Службы электронной почты применяют ограничения, так как при отправке этих писем нет аутентификации.

например. https://support.asperasoft.com/hc/en-us/articles/216128488-How-to-use-Gmail-as-an-SMTP-relay-for-notification-testing

Этот SMTP-сервер не требует TLS или аутентификации. это ограничено, потому что электронные письма могут быть отправлены только на другие адреса Gmail или Пользователи приложений Google - поэтому может иметь смысл только для тестирования в внутренняя сеть, которая использует приложения Gmail или Google. Ограничения применяются в получатель.

т.е. эти службы не против отправки писем в пределах своего домена, но не хотят, чтобы злоумышленники отправляли их в другие домены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...