Mr_Pervushin

Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору censssored Ну подскажи пожалуйста, ты наверное как никто другой знаешь этот движок, проблема с рассылкой. Автоматом все письма людям приходят, в общем всё работает, кроме рассылки, мне письмо от моего хостинга приходит (тоже на рассылку подписал, чтоб видеть как она выглядит), а другим пользователям нет. В чём может быть косяк? Вот что у моего хостинг-провайдера по этому поводу написано (может поможет): Цитата: Вы можете отправлять почту из скриптов Вашего сайта практически без ограничений. Главное - отсутствие жалоб на спам с Вашего сайта. Если будут жалобы, нам придется запретить Вам отправку почты, а мы этого делать не любим. Первый и главный момент при отправке письма - путь к почтовой программе. В качестве почтового демона у нас установлен Exim 3.3, путь к нему, который Вы должны использовать в скриптах - /usr/sbin/sendmail -t. Подробности синтаксиса мы описывать не будем, т.к. об этом написано достаточно. Существует один момент, который скорее всего не описан в используемой Вами литературе или на нем не заострено внимание. Этот момент становится важным при использовании скриптов на сервере с несколькими доменами и заключается в указании отправителя письма. Если Ваш скрипт отправляет письма только Вам, например, данные из форм на Вашем сайте, то указание отправителя не принципиально. А вот в случае рассылки писем это становится актуальным, как минимум письмо должно содержать поле From:, чтобы не казаться анонимкой. При использовании Perl отправка письма осуществляется вызовом /usr/sbin/sendmail и печатью в поток. Заголовок From: указывается явно. При использовании PHP письмо можно отправить вышеописанным образом, или, что много проще, используя функцию mail(). Во втором случае заголовок From: указывается в четвертом параметре функции среди других необязательных заголовков. Если почта дошла до адресата, то все ОК и указанной информации вполне достаточно, однако наш мир не совершенен. Существует куча причин, по которым письма не доходят и почтовые сервера генерируют письма с сообщением об ошибке. Эти письма направляются на адрес, указанный в заголовках потерявшегося письма в поле Reply-To:. Как формируется данное поле? Если почта отправляется из Perl-скрипта (все perl-скрипты запускаются от имени Вашего пользователя в системе), то в поле Replay-To: указывается обратный адрес вида your_login@majordomo.ru. Если Вы используете PHP, то данный адрес будет иметь вид nobody@majordomo.ru, т.к .php-скрипты выполняются от имени Apache, т.е. nobody. Для того, чтобы вся ошибочная почта все-таки поступала к Вам и Вы могли корректировать свои базы (ну и просто разгрузить наш postmaster@majordomo.ru, нужно: 1. При явном вызове программы использовать ключ -f - /usr/sbin/sendmail -fany@domain.ru 2. При использовании функции mail() в PHP есть два способа. Первый, наша собственная разработка, призванный облегчить Вам жизнь - достаточно просто указать поле From: в четвертом параметре (работают варианты From: & from:, но не FROM - mail($email, $subject, $body, "From: any@domain.ru"). Таким образом Вы убиваете двух зайцев - подписываете письмо для получателя и заполняете поле Replay-To:. Второй вариант, созданный разработчиками PHP, появился в версии 4.0.5 - в функцию mail() добавили пятый (необязательный) параметр, который передается при вызове почтовой программы в качестве параметров командной строки. Как можно догадаться формат записи будет - mail($email, $subject, @body, "From: any@domain.ru", "-fany2@domain.ru"). Данный вариант позволяет Вам указать в качестве отправителя и получателя ошибок разных адресатов, однако чуть более громоздкий. | arcanum Написал в личку, погляди. |