PDA

Показать полную графическую версию : [решено] CommuniGate и SMTP (+ sendmail + Yandex.ru


Negativ
13-10-2006, 16:53
Читаю логи, вижу это:
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 модуль ответил что релей запрещен, мой или яндекса?

kim-aa
14-10-2006, 14:44
Думаю что Yandex.
Во-первых - первая строчка, это явно "отлуп" SMTP Яндекса.
Во-вторых, если бы "резал" твой SMTP, то ты бы не смог отправить письмо уже с клиента.
В-третьих, подробности эксперимента знать надо.

Negativ
16-10-2006, 13:42
Теперь вопрос в другом. Почему 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.: если я где-то ошибаюсь поправьте меня.

kim-aa
16-10-2006, 14:52
1) Можешь быть в "ЧОРНЫХ-ПРЕЧОРНЫХ" списка.
2) test@domen.ru - не проходит "проверку на вшивость" (Обратное DNS преобразование не указывает на IP отправителя)
3) ляляляля@yandex.ru - такого получателя нет (но это вряд-ли, другое сообщение было бы)
4) @yandex.ru - ты написал с ошибками (Шутю ;) )

Negativ
16-10-2006, 15:18
kim-aa
1. Почта на любой зарегистрированный ящик яндекса, если письмо отправлять непосредственно с MTA, доходит. Соответственно я не нахожусь в черных списках.
2. мой домен имеет PTR запись. Соответственно обратное преобразование работает.
3. Если бы не было получателя, он бы по идее должен сказать что-то типа такого: Error Code=unknown user account.

4. :dont-know

kim-aa
17-10-2006, 08:43
Negativ
По содержанию скрипта ясно, что письмо отправляется минуя MTA, используя программу sendmail которая указывается в php.ini
Очень загадочная фраза. А sendmail разве не MTA? Или ты хочешь сказать, что почта отправляется непосредственно на Yandex, минуя твой основной почтовый сервер?

Negativ
17-10-2006, 12:31
kim-aa
Мне самому интересно, каким образом работает CommuniGate.
По содержанию скрипта ясно, что письмо отправляется минуя MTA, используя программу sendmail которая указывается в php.ini.
именно вот этот /usr/local/sbin/CommuniGate/sendmail.

Есть MTA который называется sendmail. Я его не использую. Его у меня на сервере вообще нет!
от сюда видно, что этот sendmail - не MTA, а программа, которая используется CommuniGate (или не используется. Не знаю.).

Или ты хочешь сказать, что почта отправляется непосредственно на Yandex, минуя твой основной почтовый сервер?

Именно это я и хочу сказать.

kim-aa
17-10-2006, 12:43
1) Тогда логи sendmail нужно смотреть.
2) Не проще ли перенастроить sendmail, дабы он отправлял почту через твой основной MTA?

XPurple
17-10-2006, 13:06
(Обратное DNS преобразование не указывает на IP отправителя)
Всегда прямая зона этим занималась. ;)

Vich
17-10-2006, 13:18
на сколько мне известно, сервер яндекса не позволяет релаить через себя неавторизованными агентам.
функция mail() пытается отправлять сообщение через SMTP серв, указанный в настройке SMTP php (смотри phpinfo() )

Negativ
17-10-2006, 14:09
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

mar
17-10-2006, 14:22
Negativ

ls -l /usr/local/sbin/CommuniGate/sendmail
скорей всего это будет алиаз CommuniGate. т.е. вряд ли можно говорить об отсылке писем, минуя МТА

про логи - это все? или были еще какие-нибудь строчки, касающиеся этого письма?

что будет, если зайти на сервер и послать (руками, командой mail) письмо по этому же адресу? (логи)

mar
17-10-2006, 14:32
до кучи - пошли письмо себе через php-ый mail и проанализируй заголовок (особенно на предмет того, как выглядит адрес отправителя)

Vich
17-10-2006, 14:46
/var/log/maillog ?

Negativ
17-10-2006, 15:43
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

Negativ
18-10-2006, 08:59
mar

что будет, если зайти на сервер и послать (руками, командой mail) письмо по этому же адресу? (логи)
отправил письмо напрямую с сервера используя команду mail.
Посмотрел лог CommuniGate. Был не прав по поводу того что почта отправляется минуя MTA. В логах видно, что письмо встает в очередь SMTP Sending. Приходит к яндексу. Отправитель root@domen.ru.
Когда письмо отправляется скриптом php, в поле отправитель ставится другой адрес. Т.е. тут root подменяется на другого отправителя.
Всем большое спасибо за участие.




© OSzone.net 2001-2012