Модуль Python smtplib
не выполняет маршрутизацию почты, поэтому оставляет его на интеллектуальном хосте .
Вы можете использовать dnspython
для поиска записей MX для домена назначения (и записей A и AAAA, если записи MX нет).Полученный адрес можно затем передать smtplib
.
Однако это лишь малая часть работы, необходимой для реализации правильной маршрутизации почты: если целевой почтовый сервер недоступен или время ожидания истекло, выдолжны попробовать следующий сервер.Аналогично, если он отвечает кодом ошибки 4xx
.Если все серверы недоступны, вам нужно временно сохранить сообщение локально, поэтому вам нужно создать собственную почтовую очередь.Кроме того, ваш внешний IP-адрес может быть занесен в черный список для доставки почты.
Поэтому обычно проще установить локальный почтовый сервер, такой как Exim или Postfix и использоватьчтобы вводить почту, возможно, направляя ее через промежуточный узел с хорошей репутацией электронной почты, чтобы избежать внесения в черный список.