Как проверить состояние SMTP-сервера с Java? - PullRequest
0 голосов
/ 10 ноября 2009

В программе на Java, как лучше всего определить, готов ли SMTP-сервер принять и отправить электронное письмо?

1 Ответ

4 голосов
/ 10 ноября 2009

Вы можете использовать JavaMail API и попытаться отправить электронное письмо.

Если вы на самом деле не хотите отправлять электронное письмо, вы можете открыть TCP-сокет для порта 25 вашего почтового сервера и отправить следующие команды:

HELO yourdomain.com
MAIL FROM: youremail@yourdomain.com
RCPT TO: recipient@recipientdomain.com

Убедитесь, что вы проверяете все ответы сервера после каждой команды. Если вы не увидите никаких ошибок до этого момента, то, вероятно, вы сможете отправлять электронные письма с этого SMTP-сервера.

И, как любезно назначил Джордан Стюарт:

Вы также хотите убедиться, что Домен HELO имеет дополнительный A / PTR днс записи пары, с IP адрес домена сопоставлен с IP-адрес, с которого вы подключаетесь. Домен также нуждается как минимум в одном MX запись. То есть если сервер вы подключение от 123,45,67,89, то вам нужно сопоставление записей yourdomain.com до 123.45.67.89 и Отображение записи PTR («обратный DNS») 123.45.67.89 обратно на yourdomain.com. Если какое-либо из этих условий не выполнено у вас возникнут проблемы с некоторыми почтовые серверы как чеки на эти вещи против спама.

...