Показать полную графическую версию : [решено] CommuniGate и SMTP (+ sendmail + Yandex.ru
Читаю логи, вижу это:
11:45:47.781 1 SMTP-000698(yandex.ru) [36907] relaying to 'ляляляляля@yandex.ru' prohibited
11:45:47.783 1 DEQUEUER [36907] SMTP(yandex.ru)ляляляляля@yandex.ru failed: we refuse to relay
*END*
Мне собственно интересно, чей SMTP модуль ответил что релей запрещен, мой или яндекса?
Думаю что Yandex.
Во-первых - первая строчка, это явно "отлуп" SMTP Яндекса.
Во-вторых, если бы "резал" твой SMTP, то ты бы не смог отправить письмо уже с клиента.
В-третьих, подробности эксперимента знать надо.
Теперь вопрос в другом. Почему SMTP яндекса делает "отлуп"?
У меня стоит MTA CommuniGate Pro.
Есть скрипт на PHP который запускается при определенных обстоятельствах.
Код:
<?
mail("ляляляля@yandex.ru", "Subject", "Message", "From: test@domen.ru");
echo "Done\r\n";
?>
По содержанию скрипта ясно, что письмо отправляется минуя MTA, используя программу sendmail которая указывается в php.ini.
именно вот этот /usr/local/sbin/CommuniGate/sendmail.
SMTP модуль Яндекса в таком случае делает "отлуп" такому письму.
Собственно сами вопросы:
1. Почему SMTP яндекса говорит именно: relaying to 'ляляляляля@yandex.ru' prohibited ?
2. Ну и как сделать так, чтобы он этого не говорил, а принимал письмо?
P.S.: если я где-то ошибаюсь поправьте меня.
1) Можешь быть в "ЧОРНЫХ-ПРЕЧОРНЫХ" списка.
2) test@domen.ru - не проходит "проверку на вшивость" (Обратное DNS преобразование не указывает на IP отправителя)
3) ляляляля@yandex.ru - такого получателя нет (но это вряд-ли, другое сообщение было бы)
4) @yandex.ru - ты написал с ошибками (Шутю ;) )
kim-aa
1. Почта на любой зарегистрированный ящик яндекса, если письмо отправлять непосредственно с MTA, доходит. Соответственно я не нахожусь в черных списках.
2. мой домен имеет PTR запись. Соответственно обратное преобразование работает.
3. Если бы не было получателя, он бы по идее должен сказать что-то типа такого: Error Code=unknown user account.
4. :dont-know
Negativ
По содержанию скрипта ясно, что письмо отправляется минуя MTA, используя программу sendmail которая указывается в php.ini
Очень загадочная фраза. А sendmail разве не MTA? Или ты хочешь сказать, что почта отправляется непосредственно на Yandex, минуя твой основной почтовый сервер?
kim-aa
Мне самому интересно, каким образом работает CommuniGate.
По содержанию скрипта ясно, что письмо отправляется минуя MTA, используя программу sendmail которая указывается в php.ini.
именно вот этот /usr/local/sbin/CommuniGate/sendmail.
Есть MTA который называется sendmail. Я его не использую. Его у меня на сервере вообще нет!
от сюда видно, что этот sendmail - не MTA, а программа, которая используется CommuniGate (или не используется. Не знаю.).
Или ты хочешь сказать, что почта отправляется непосредственно на Yandex, минуя твой основной почтовый сервер?
Именно это я и хочу сказать.
1) Тогда логи sendmail нужно смотреть.
2) Не проще ли перенастроить sendmail, дабы он отправлял почту через твой основной MTA?
(Обратное DNS преобразование не указывает на IP отправителя)
Всегда прямая зона этим занималась. ;)
на сколько мне известно, сервер яндекса не позволяет релаить через себя неавторизованными агентам.
функция mail() пытается отправлять сообщение через SMTP серв, указанный в настройке SMTP php (смотри phpinfo() )
XPurple
Вы видимо не поняли. Речь не о зоне, а о PTR записи в этой зоне.
kim-aa
1) Тогда логи sendmail нужно смотреть.
да как я на них посмотрю если у меня sendmail'а вообще нет. Есть только файл sendmail. Логи есть только у CommuniGate, там я вижу только то, что я написал в первом посте.
Vich
phpinfo:
sendmail_path /usr/local/sbin/CommuniGate/sendmail -t -i
SMTP localhost
smtp_port 25
Negativ
ls -l /usr/local/sbin/CommuniGate/sendmail
скорей всего это будет алиаз CommuniGate. т.е. вряд ли можно говорить об отсылке писем, минуя МТА
про логи - это все? или были еще какие-нибудь строчки, касающиеся этого письма?
что будет, если зайти на сервер и послать (руками, командой mail) письмо по этому же адресу? (логи)
до кучи - пошли письмо себе через php-ый mail и проанализируй заголовок (особенно на предмет того, как выглядит адрес отправителя)
mar
# ls -l /usr/local/sbin/CommuniGate/sendmail
-r-xr-sr-x 1 root mail 10154 Aug 13 05:54 /usr/local/sbin/CommuniGate/sendmail
вывод sockstat
root CGServer 45480 30 tcp4 192.168.1.2:25
с логами: добавил в php.ini
sendmail_path = "/usr/local/sbin/CommuniGate/sendmail -t -i -X /var/log/sendmail.st
mar
что будет, если зайти на сервер и послать (руками, командой mail) письмо по этому же адресу? (логи)
отправил письмо напрямую с сервера используя команду mail.
Посмотрел лог CommuniGate. Был не прав по поводу того что почта отправляется минуя MTA. В логах видно, что письмо встает в очередь SMTP Sending. Приходит к яндексу. Отправитель root@domen.ru.
Когда письмо отправляется скриптом php, в поле отправитель ставится другой адрес. Т.е. тут root подменяется на другого отправителя.
Всем большое спасибо за участие.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC