Иногда бывает, что при отправке письма, через sendmail(почтовый сервер), письмо возвращается с ошибкой:
Apr 15 19:15:31 myhost sendmail[5806]: mATM4O8w58095806: Losing ./qfmATM4O8w58095806: savemail panic
Apr 15 19:15:45 myhost sendmail[5806]: mATM4O8w58095806: SYSERR(www): savemail: cannot save rejected email anywhere
При этом в логах периодически появляется:
stat=Data format error
Данная проблема обычно появляется, из-за несуществующего почтового адреса при отправке, либо несуществующего сервера hostname.
Для решения проблемы необходимо указывать правильный email. Его можно прописать в панели ISPmanager во вкладке свойств WWW в поле Email администратора.
Данный email также необходимо прописать в конфигурациях apache при описании виртуального хоста:
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f [email protected]"
При использовании PHP в режимах FastCGI или CGI данная строка вносится в файл ~/php-bin/php.ini
sendmail_path = "/usr/sbin/sendmail -t -i -f [email protected]"
Как отключить проверку правильности email отправителя, когда отправляет email
Sendmail запускается, по умолчанию, с MSP (Message Submission Program). Данный процесс запускается отдельно, чтобы обрабатывать почтовую очередь.
Рассмотрим пример отключения Sendmail в системе FreeBSD
В файле /etc/make.conf пропишите строку submit.cf, для отключения автоматического создания файлов.
SENDMAIL_SET_USER_ID=yes
После чего необходимо удалить файл submit.cf, поменять права на исполнимый файл sendmail (поставить на него SUID bit вместо SGID, то есть установить права 4755 вместо 2755) и перезапустить sendmail
cd /etc/mail rm submit.cf make stop chmod 4755 /usr/local/sbin/sendmail make start
Аналогично можно произвести отключение и на других системах. На ОС CentOS Linux создание submit.cf, которое происходит автоматически, отключается простым редактированием файла /etc/mail/Makefile.