SMTP напрямую к записи MX хоста - PullRequest
       14

SMTP напрямую к записи MX хоста

4 голосов
/ 04 сентября 2011

Я попытался поиграть в python, чтобы узнать больше о протоколе SMTP.Точнее я пытаюсь отправить почту прямо на smtp сервер хоста, но без особого успеха.

Например, скажем, я хочу отправить письмо на адрес gmail.com, я ищу mxзапись для gmail.com:

>> nslookup -type=MX gmail.com
gmail.com       MX preference = 40, mail exchanger = alt4.gmail-smtp-in.l.google.com
gmail.com       MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com       MX preference = 10, mail exchanger = alt1.gmail-smtp-in.l.google.com

Затем я делаю следующее в Python:

import smtplib
# Tried both port 465 and 587 (can't test port 25 since it's blocked by my ISP)
s = smtplib.SMTP("alt1.gmail-smtp-in.l.google.com", 587) 

Я пробовал несколько, и для всех, кроме одного, я всегда получал: "[Errno 10051] Была предпринята попытка операции с сокетом в недоступной сети" или "[Errno 10060] Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить" исключение.

Iгде-то читал, что некоторые почтовые серверы выполняют обратный просмотр вашего IP и отклоняют соединение, если у него нет домена.Как они это делают?
Я также где-то читал, что многие почтовые серверы отклоняют входящую почту с динамических IP-адресов (которые я, очевидно, имею в качестве частного клиента для своего интернет-провайдера).Как они могут проверить, является ли IP-адрес динамическим или статическим?

По этой причине большинство серверов отклоняют мое соединение?Или есть что-то еще?

Ответы [ 2 ]

4 голосов
/ 04 сентября 2011

Хм, ваша проблема именно такова:

# Tried both port 465 and 587 (can't test port 25 since it's blocked by my ISP)

MX-сервер Google прослушивает порт 25. Если ваш провайдер не разрешает исходящие соединения через этот порт, вы не сможете отправлять SMTPсообщения, как вы пытаетесь сделать.Вы должны уладить это с вашим провайдером.

Что касается отклонения сообщений, отправка электронной почты напрямую, как это, увеличивает вероятность того, что она будет отклонена или помечена как спам.В частности, если вы задали адрес «from» для чего-то, что не соответствует домену, связанному с вашим IP-адресом, или если ваш SMTP-клиент отправляет несоответствующий домен в своем сообщении EHLO, или если содержимое вашего сообщения выглядит как «спам»,Реальное поведение будет зависеть от того, как настроен каждый отдельный сервер MX.

0 голосов
/ 29 сентября 2015

Прямой доступ к электронной почте MX, как вы описали выше, будет блокироваться SMTP-серверами Gmail с сообщением об ошибке "421-4.7.0" , однако многие другие серверы SMTP, такие как MailEnable, разрешат Direct To MX.

На следующем веб-сайте есть исходный код для .NET и PHP для кода Direct to MX, http://www.directtomx.com - вы можете использовать веб-сервис в python, используя SUDS .

...