LAMP. Отправка почты функцией PHP mail().

Если после установки например LAMP сервера у вас не работают скрипты с функцией php mail(), точней письма просто не отправляются, то это значит что вам нужно установить почтовый сервер, например Postfix. Но Postfix — это огромный с кучей возможностей почтовый сервер, и мне он был не к чему. Мне нужно было лишь заставить работать функцию mail(), точней просто отправлять письма с сервера, например при регистрации, или заказе товара в интернет-магазине, и т.д. Поискав информацию, я нашел очень хороший, минимальный MTA, для таких целей. Таким оказался — SSMTP. Нету не чего лишнего, прост в установке, и настройке. Давайте установим и настроем ssmtp для отправки писем, например через gmail.

Для установки SSMTP выполните в терминале:

sudo apt-get install ssmtp

Отредактируем файл-конфигурации:

sudo gedit /etc/ssmtp/ssmtp.conf

Добавим туда следующие строчки, заменяя их на свои данные:

root=youremailhere@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=yourgmailusername
AuthPass=yourgmailpassword
UseSTARTTLS=YES

По-сути, по таком же примеру можно настроить почту и под любого другого сервиса почты.

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

sudo gedit /etc/ssmtp/revaliases

Пишем следующие строчки, и не забываем их изменить под свои данные

root:pupkin@yandex.ru:smtp.yandex.ru:465
UserUbuntu:pupkin@yandex.ru:smtp.yandex.ru:465
www-data:pupkin@yandex.ru:smtp.yandex.ru:465

Сохраняем и закрываем.

Редактируем конфиг:

sudo gedit /etc/ssmtp/ssmtp.conf

И все содержимое заменяем следующим:

hostname=localhost
FromLineOverride=NO
AuthUser=pupkin@yandex.ru
AuthPass=12345
mailhub=smtp.yandex.ru:465
UseTLS=YES

Подставляем свои данные, сохраняем, и закрываем.

Далее откроем php.ini и отредактируем его:

sudo gedit /etc/php5/apache2/php.ini

находим параметр: sendmail_path, раскоментируем его и добавляем путь к ssmtp:

sendmail_path = /usr/sbin/ssmtp -t

Сохраняем изменения и перезагружаем апач:

sudo /etc/init.d/apache2 restart

Sendmail

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

Установим  sendmail

sudo apt-get install sendmail

отредактируем php.ini И дадим знать для php, что  мы будем отправлять почту, через sendmail

sudo gedit /etc/php5/apache2/php.ini

в параметре sendmail_path пропишем следующее:

sendmail_path = /usr/sbin/sendmail -t

Перезагрузим веб-сервер

sudo /etc/init.d/apache2 restart

Leave a Reply

Your email address will not be published. Required fields are marked *