В этой статье мы расскажем вам, как легко и быстро установить простого SMTP-клиента на вашем сервере Ubuntu. Этот SMTP-клиент позволит вам без труда отправлять почту с вашего сайта, подключаясь к серверам Яндекса. Несмотря на то, что многие рекомендуют использовать более сложные решения, такие как Postfix или Sendmail, мы считаем, что для задач, связанных с отправкой почты от имени одного пользователя, например, для регистрации на сайте и отправки уведомлений, такие программы — это, как говорят, "стрелять из пушки по воробьям". Они часто оказываются сложными в настройке, и их функциональность редко используется в полной мере. Вместо этого рассмотрим менее известное решение — ssmtp. Он легкий, прост в настройке, поддерживает шифрование и прекрасно справляется со своей задачей.
Давайте начнем.
Установка ssmtp на Ubuntu:
Шаг 1: Установка ssmtp
Для начала откройте терминал и установите ssmtp следующей командой:
sudo apt-get install ssmtp
Шаг 2: Настройка ssmtp
Теперь давайте настроим ssmtp, отредактировав его конфигурационный файл. Откройте файл конфигурации следующей командой:
sudo nano /etc/ssmtp/ssmtp.conf
В этом файле внесите необходимые изменения, как показано ниже:
# Адрес отправителя [email protected] # Домен для исходящей почты rewriteDomain=mytechnote.ru # SMTP-сервер Яндекса и порт mailhub=smtp.yandex.ru:465 # Имя вашего сервера hostname=mytechnote.ru # Включить шифрование UseTLS=YES # Аутентификация на сервере Яндекса [email protected] AuthPass=yourpassword # Разрешить пользователям изменять поле "От кого" FromLineOverride=YES
Шаг 3: Редактирование файла revaliases
Отредактируйте еще один конфигурационный файл:
sudo nano /etc/ssmtp/revaliases
Добавьте строки, подобные следующим, в файл:
root:[email protected]:smtp.yandex.ru:465 www.mytechnote.ru:[email protected]:smtp.yandex.ru:465 www-data:[email protected]:smtp.yandex.ru:465
Как видите, первое поле - это имя пользователя, второе - поле "От кого", а третье - SMTP-сервер и порт.
Шаг 4: Проверка настроек
Чтобы протестировать настройки, попробуйте отправить письмо с помощью следующей команды:
ssmtp [email protected] # По запросу введите следующие данные: To: [email protected] From: [email protected] Subject: test #между темой и телом письма должна быть одна пустая строка, чтобы ssmtp понял, что начинается тело письма. test
После ввода сообщения нажмите Ctrl+D
для отправки. Письмо должно быть успешно отправлено.
С помощью ssmtp установка легкого SMTP-клиента для вашего сайта на Ubuntu становится настоящей легкостью. Его простота, удобная настройка, поддержка шифрования и эффективность делают его отличным выбором для задач, таких как регистрация на сайте и отправка уведомлений.
Видео по теме:
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.
Если вам помогла статья, вы можете >>отблагодарить автора<<
Комментарии
ssmtp: Authorization failed (535 5.7.8 Error: authentication failed: Invalid user or password!)
Приветствую. Где почта хостится? Может там не стандартные порты, или нет поддержки ssl/tls?
машинка vps хостинг simplecloud.ru модули ставлю сам может не хватает чего то? например как раз этих ssl/tls
ssmtp - просто клиент... Какой smtp сервер прописан в конфигах?
Яндекс если я правильно понял
А почта то точно на яндексе? Через браузер с сайта яндекс под вашими логином и паролем заходит?
да моя почта, да от яндекса, да заходит с этими же данными
Хм... Странно, а покажите содержимое конфигов revaliases и ssmtp.conf
Нашёл опечатку в конфигах в статье - после адресов почты стояли точки, их быть не должно. Если у вас так же стоят уберите их и попробуйте, должно заработать.
добрый вечер, убрано всё теперь выбивает это 5.7.1 sender address rejected: not owned by auth user.
запутался в revaliases не пойму что куда как опять
В revaliases:
1) Имя пользователя системы, кто будет отправлять
2) Почтовый ящик, от имени которого будут отправляться письма
3) smtp сервер
4) порт
По ошибке:
Если на яндексе не подключена почта для домена, то адрес отправителя должен совпадать с учетными данными яндекса иначе будет такая ошибка.
какого пользователя указывать в AuthUser= AuthPass= логин от своей почты яндекса или другое что то? в этом проблема
От яндекс.
Сейчас у вас не работает, т.к. Яндекс не знает о почтовом ящике от которого вы хотите отправлять почту. Что бы он узнал, нужно зарегестрировать почту для домена, и добавить в неё нужный адрес (pdd.yandex.ru). Соответственно этот новый адрес будет и логином и адресом отправителя.
Если почту для домена не делать, тогда везде где есть адрес почты, он должен быть такой же как логин для авторизации.
Добрый день!Настраивал с похожими конфигами ssmtp. Вообще нечего не завелось(
Здравствуйте, а что значит не завелось? Ошибки какие-нибудь есть? Покажите ваши конфиги
Из PHP отправить (ляет) письма с русскоязычных доменов РФ.
Это утверждение или вопрос? =)
Это констатация факта, и набор слов для поиска верного варианта в последствии! :-)
Здравствуйте, спасибо за мануал, очень помогло. Один только вопрос. Письмо приходит от: ( "www-data" <моёмыло> ). Корректно ли это и как сделать вместо "www-data", допустим, имя администратора?
Вроде, это задается в revaliases (/etc/ssmtp/revaliases) туда забейте что то типо www-data:[email protected]
revaliases: root:моёмыло:smtp.mail.ru:465 www-data:моёмыло:smtp.mail.ru:465 www.мойдомен:моёмыло:smtp.mail.ru:465 Открытое письмо выглядит так: Тестовое сообщение от мойдомен "www-data" <моёмыло> Кому...... текст письма Письмо в общем списке: аватар "www-data" Тестовое сообщение от мойдомен Хотя по идее вместо "www-data" должно отдаваться моёмыло.
Еще как вариант можно использовать ключи при вызове ssmtp, как то так:
В php.ini вроде можно задать произвольную команду.
Проблема решена. В
/etc/ssmtp/ssmtp
.conf была заккоментирована строка "
FromLineOverride=YES".Ещё раз спасибо за рабочий мануал и за помощь.Добрый день!Отличная статья, все понятно.Настроил по аналогии с инструкцией, но при отправке возвращается ошибка:535 5.7.8 Error: authentication failed:Invalid format. sendmail: Authorization failed (535 5.7.8 Error: authentication failed:Invalid format.)Содержимое файла ssmtp.conf: root=[email protected]mailhub=smtp.yandex.ru:465rewriteDomain=vdomturista.ruhostname=vdomturista.ruFromLineOverride=YESDebug=YESUseTLS=YESAuthUser=[email protected]
AuthPass=MyPassword
Файл revaliases: root:[email protected]:smtp.yandex.ru:465bitrix:[email protected]:smtp.yandex.ru:465
Просмотрел советы по настройке, но ни один не помог. Есть ли какие-то предположения почему yandex возвращает эту ошибку?P.S. Отправляю тестовое письмо с пом. строки echo "Subject: sendmail test" | sendmail -v [email protected] sendmail cим линк на ssmtp