Отправка писем sendmail


Отправка писем sendmail предполагает использование скрипта на каком-либо языке программирования, чаще всего на PHP. Письма через sendmail можно отправлять только без авторизации в отличие от отправки через SMTP, предполагающего возможность использовать авторизацию.


Скрипт на PHP позволяющий проверять работает ли отправка писем через sendmail


Скрипт отправляем письма на [email protected], тема сообщений test, в содержании будет две строки, слово test в первой и some message во второй.

<?php
if (mail('[email protected]', 'test', 'test\nsome message'))
{
echo 'message accepted for delivery';
}
else
{
echo 'some error happen';
}
?>


Скрипт вызывается в консоли путем обращения к нему и вызову интерпретатора

php testmail.php


Также проверить можно обратившись к скрипту из браузера, если скрипт размещен в корне сайта и имеет имя testmail.php, то URL будет таким http://sitename.ru/testmail.php.


Среди частых причин того почему отправка сообщения не происходит — неверные права на файл /usr/sbin/sendmail или отсутствие на нем бита исполняемости.



Если с использованием скрипта сообщение отправить удалось в консоль будет выведено message accepted for delivery, оно говорит о том, что отправка писем sendmail работает. Если отправка не произошла по какой-то причине — появится сообщение some error happen.



Часто /usr/sbin/sendmail является символьной ссылкой на бинарный файл почтового сервера postfix или exim.

Отправка писем sendmail

Если создана символьная ссылка, то отправка будет идти через почтовый сервер и в случае неполадок нужно проверять его логи.



Также письма можно отправлять из консоли используя утилиту mail из пакета mailutils

В случае когда письма из консоли отправляются, а скриптом при обращении к сайту нет — нужно проверять настройки РНР относящиеся к sendmail, текущие настройки отображаются в выводе phpinfo

Сказать спасибо