Вы здесь

Как установить простой SMTP клиент (ssmtp) на Ubuntu для отправки почты с сайта.

Аватар пользователя sanglyb
Опубликовано вс, 13/03/2016 - 13:01 пользователем sanglyb

В этой статье я покажу как можно легко и быстро поставить простой SMTP клиент на Ubuntu, который будет подключаться к серверам Яндеса, например для того что бы можно было отправлять почту с сайта. Очень часто советуют ставить postfix, либо sendmail, но я считаю, если вам нужно отправлять почту от имени одного пользователя, например для регистрации на сайте, уведомлений и т.п., то ставить эти программы - как стрелять из пушки по воробьям. Во первых они довольно сложны в настройке, во вторых их функционал будет использоваться на очень маленький процент от их возможностей. Есть такая программа - ssmtp, на форумах почему то о нем часто забывают, а он в свою очередь очень маленькиий, очень простой в настройке, поддерживает шифрование и со своей задачей справляется на ура.

В общем приступим.

Ставим ssmtp из терминала:

sudo apt-get install ssmtp

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

sudo nano /etc/ssmtp/ssmtp.conf

В нем нужно отредактировать строчки:

#от имени кого будут отправляться письма
root=site@sanglyb.ru
#С какого домена будут приходить письма
rewriteDomain=sanglyb.ru
#Сервер яндекса
mailhub=smtp.yandex.ru:465
#имя нашего сервера
hostname=sanglyb.ru
#Разрешаем шифрование
UseTLS=YES
#авторизация на Яндексе
AuthUser=site@sanglyb.ru
AuthPass=yourpassword
#разрешаем пользователям менять поле From
FromLineOverride=YES

Далее нужно отредактировать еще один конфиг

 

sudo nano /etc/ssmtp/revaliases

В должны быть примерно такие строчки:

root:site@sanglyb.ru:smtp.yandex.ru:465
www.sanglyb.ru:site@sanglyb.ru:smtp.yandex.ru:465
www-data:site@sanglyb.ru:smtp.yandex.ru:465

Как вы уже поняли - первое поле тут - имя пользователя, второе - поле from, третье - smtp сервер и порт.

После того как конфиги будут отредактированы можно попробовать что нибудь отправить для этого набираем:

ssmtp sanglyb@mail.ru

To: vashapochta@mail.ru
From: site@sanglyb.ru
Subject: test
#между темой и телом письма должна быть одна пустая строка, то бы ssmtp понял, что начинается тело.

test

#для отправки нужно нажать ctrl+D

Письмо должно уйти. На этом настройка ssmtp для сайта закончена.

Видео по теме:

Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.


Если вам помогла статья, вы можете >>отблагодарить автора<<


Комментарии

Нашёл опечатку в конфигах в статье - после адресов почты стояли точки, их быть не должно. Если у вас так же стоят уберите их и попробуйте, должно заработать.

В revaliases:

1) Имя пользователя системы, кто будет отправлять

2) Почтовый ящик, от имени которого будут отправляться письма

3) smtp сервер

4) порт

По ошибке:

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

От яндекс.

Сейчас у вас не работает, т.к. Яндекс не знает о почтовом ящике от которого вы хотите отправлять почту. Что бы он узнал, нужно зарегестрировать почту для домена, и добавить в неё нужный адрес (pdd.yandex.ru). Соответственно этот новый адрес будет и логином и адресом отправителя.

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

Здравствуйте, спасибо за мануал, очень помогло. Один только вопрос. Письмо приходит от: ( "www-data" <моёмыло> ). Корректно ли это и как сделать вместо "www-data", допустим, имя администратора?

revaliases:      root:моёмыло:smtp.mail.ru:465      www-data:моёмыло:smtp.mail.ru:465      www.мойдомен:моёмыло:smtp.mail.ru:465 Открытое письмо выглядит так:     Тестовое сообщение от мойдомен        "www-data" <моёмыло>         Кому......     текст письма Письмо в общем списке:    аватар "www-data"                     Тестовое сообщение от мойдомен   Хотя по идее вместо "www-data" должно отдаваться моёмыло. 

Еще как вариант можно использовать ключи при вызове ssmtp, как то так:

ssmtp -f"мыло@домен" -F"Админ сайта"

В php.ini вроде можно задать произвольную команду.

Проблема решена. В /etc/ssmtp/ssmtp.conf была заккоментирована строка "FromLineOverride=YES".Ещё раз спасибо за рабочий мануал и за помощь.

Оставить комментарий