Как проверить наличие почтового сервера (возможность отправики на email)

snark

Новичок
Как проверить наличие почтового сервера (возможность отправики на email)

Возможно ли ДО попытки отправкой сообщения (функция mail()) узнать оную возможность?

Спасибо!
 

AmdY

Пью пиво
Команда форума
да, можно проверять mx запись, гугли.
 

snark

Новичок
Автор оригинала: AmdY
да, можно проверять mx запись, гугли.

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

grigori

( ͡° ͜ʖ ͡°)
Команда форума
можешь еще открыть соединение на 25й порт и проверить, что он отвечает
будешь рассказывать друзьям какой ты умный
 

DIS

Новичок
Опыт показывает, что на 100% проверить по mx-записям нереально..

1. некоторые почтовики (напр. mail.ru) на всё отвечают ОК.
2. таймаута частно не хватает для проверки.

так что...
 

snark

Новичок
Автор оригинала: findnext
а смысл проверки?
Смысл в том, как пользователю давай форму для отправки сообщения в ТП при возможной ошибке в программе. Если есть возможность отправки (указан рабочий SMTP в php.ini) то, гооврить: "Возникла ошибка, техподдержка оповещена лялялял", если возмоности автоматом отправить письмо нет, но предлагать шаблон письма и адрес куда отправить.

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

dimagolov

Новичок
если возмоности автоматом отправить письмо нет, но предлагать шаблон письма и адрес куда отправить.
как можно что-то отправить, если отправка не работает?

пусть твоя форма "письмо суппорту" что-то тупо пишет в лог, туда куда максимальные шансы что-то записать.
 

snark

Новичок
Автор оригинала: dimagolov
как можно что-то отправить, если отправка не работает?

пусть твоя форма "письмо суппорту" что-то тупо пишет в лог, туда куда максимальные шансы что-то записать.
опечатался: вместо НО - ТО!

-~{}~ 11.08.09 16:52:

Может можно считать указанный SMTP и проверить его работу?
 

Активист

Активист
Команда форума
Однако ему нужно проверять работоспособность SMTP на сервере, где лежит сайт, а не куда идет почта. Ч тож тут сказать, если [m]mail
[/m] возвратил тебе false - значит твой почтовый сервер накрылся пп....
 

snark

Новичок
Блин, что-то я в очередной раз замудрил все.

Если @mail() == false, то инструкция, что куда отправить, если ==true то пишем что отправлено все.

Прошу прощения, вечно все усложняю.
 

snark

Новичок
Автор оригинала: dimagolov
какая нахрен инструкция? можно в лог не отправленных писем положить тело письма и ВСЕ.
Какой лог не пойму, ты о чем??? Программа на клиентском компе работает и что мне даст этот лог на его винте? Как я об ошибке узнаю? или чего?
 

baev

‹°°¬•
Команда форума
если ==true то пишем что отправлено все
— если mail() вернула true, это означает только то, что mail agent принял сообщение к отправке. А отправил ли он его и собирается ли, вообще, отправить, — это неизвестно.
 

Активист

Активист
Команда форума
baev
> mail agent принял сообщение к отправке
Ну дк, все, принял - значит все впорядке, если проблемы сторонние - значит проблема не с мейлами. Если юзера нет (не существующий почтовый сервер) то не нужно ему постоянно отправлять почту, ибо это будет вечный цикл. Дошло до почтовика - дело дальше за почтовиком, зачем все усложнять?
 

baev

‹°°¬•
Команда форума
Дошло до почтовика - дело дальше за почтовиком, зачем все усложнять?
У топик-стартера цель одна — гарантировано получить от клиента сообщение об ошибке в программе. Так вот, в случае с mail() гарантировать что-либо просто нереально. Да и сообщение «всё отправлено» может ввести клиента в заблуждение. Он же потом ещё и права качать будет: «ваша программа сообщила, что всё отправлено, почему Вы до сих пор ничего не починили?»


snark, пишите логи ошибок на свой сервер. Только не забудьте об этом сообщать клиенту, чтобы не получить обвинений в шпионаже. (Конечно, сложнее, чем просто почту получать. Если 100% гарантии не требуется — забейте.)


dimagolov, просто для топикстартера «клиентский комп» это — «компьютер клиента» (сервер, принадлежащий клиенту), а не «компьютер-клиент»…
 
Сверху