Вы здесь

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


В этой статье я покажу как можно легко и быстро поставить простой 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 для сайта закончена.

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

0 0

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


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


Комментарии

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

0 0

В revaliases:

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

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

3) smtp сервер

4) порт

По ошибке:

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

0 0

От яндекс.

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

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

0 0

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

0 0

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

0 0

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

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

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

0 0

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

0 0

Добрый день!Отличная статья, все понятно.Настроил по аналогии с инструкцией, но при отправке возвращается ошибка:535 5.7.8 Error: authentication failed:Invalid format. sendmail: Authorization failed (535 5.7.8 Error: authentication failed:Invalid format.)Содержимое файла ssmtp.conf: root=site@vdomturista.rumailhub=smtp.yandex.ru:465rewriteDomain=vdomturista.ruhostname=vdomturista.ruFromLineOverride=YESDebug=YESUseTLS=YESAuthUser=site@vdomturista.ruAuthPass=MyPasswordФайл revaliases: root:site@vdomturista.ru:smtp.yandex.ru:465bitrix:site@vdomturista.ru:smtp.yandex.ru:465Просмотрел советы по настройке, но ни один не помог. Есть ли какие-то предположения почему yandex возвращает эту ошибку?P.S. Отправляю тестовое письмо с пом. строки echo "Subject: sendmail test" | sendmail -v red1374@yandex.ru sendmail cим линк на ssmtp

0 0

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