Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Сетевые технологии (http://forum.oszone.net/forumdisplay.php?f=31)
-   -   [решено] CommuniGate и SMTP (+ sendmail + Yandex.ru (http://forum.oszone.net/showthread.php?t=72857)

Negativ 13-10-2006 16:53 497292

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 модуль ответил что релей запрещен, мой или яндекса?

kim-aa 14-10-2006 14:44 497641

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

Negativ 16-10-2006 13:42 498486

Теперь вопрос в другом. Почему 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 498527

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

Negativ 16-10-2006 15:18 498543

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

4. :dont-know

kim-aa 17-10-2006 08:43 498834

Negativ
Цитата:

По содержанию скрипта ясно, что письмо отправляется минуя MTA, используя программу sendmail которая указывается в php.ini
Очень загадочная фраза. А sendmail разве не MTA? Или ты хочешь сказать, что почта отправляется непосредственно на Yandex, минуя твой основной почтовый сервер?

Negativ 17-10-2006 12:31 498959

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 498961

1) Тогда логи sendmail нужно смотреть.
2) Не проще ли перенастроить sendmail, дабы он отправлял почту через твой основной MTA?

XPurple 17-10-2006 13:06 498977

Цитата:

(Обратное DNS преобразование не указывает на IP отправителя)
Всегда прямая зона этим занималась. ;)

Vich 17-10-2006 13:18 498980

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

Negativ 17-10-2006 14:09 499013

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 499016

Negativ

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

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

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

mar 17-10-2006 14:32 499023

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

Vich 17-10-2006 14:46 499026

/var/log/maillog ?

Negativ 17-10-2006 15:43 499061

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 499337

mar

Цитата:

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


Время: 08:38.

Время: 08:38.
© OSzone.net 2001-