Как проверить настройки электронной почты без отправки сообщения? - PullRequest
2 голосов
/ 16 апреля 2009

Как часть процесса настройки моего приложения, у меня есть средство проверки работоспособности, которое проверяет все предоставленные пользователем данные. Это включает в себя настройки сервера электронной почты, которые приложение использует для отправки электронной почты.

Я бы хотел проверить эти настройки, не отправляя письма. Было бы здорово, если бы это поддерживало все стандартные варианты настроек SMTP, в том числе с аутентификацией / ssl / и т. Д.

Это не должно быть исчерпывающим, но чем больше охват, тем лучше.

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

Примечание: я не пытаюсь проверить адреса электронной почты - это не имеет отношения к этому вопросу.

Ответы [ 2 ]

4 голосов
/ 16 апреля 2009

Вы просто открываете необработанное соединение с сервером и портом, который предоставляет пользователь, и делаете

HELO Server.Domain.Com
Mail From: validaccount@domain.com

чтобы узнать, получите ли вы действительный ответ HELO и отправителя OK. Ответ (если включена аутентификация SMTP).

То же самое, что вы сделали бы, если бы вы telnet напрямую к серверу.

http://www.petri.co.il/test_smtp_service.htm

Это также может быть полезно

http://qmail.jms1.net/test-auth.shtml

1 голос
/ 16 апреля 2009

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

Однако, если вы хотите автоматизировать процесс, у вас может быть адрес MyApp_SanityCheck@gmail.com (или ваш локальный домен).

Затем вы можете создать сторожевое приложение, которое отслеживает этот адрес электронной почты, или просто простое приложение, которое программно взаимодействует с этим адресом электронной почты и проверяет, было ли получено письмо в течение Х минут. Таким образом, вы можете быть на 100% уверены, что электронные письма могут быть отправлены. Эта ссылка показывает , как программно проверять адреса Gmail .

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

...