Linux sendmail smtp yandex

Почта: настройка ssmtp

ssmtp — SMTP-клиент (не MTA?). Когда некогда настраивать Exim/Postfix, но почту отправлять надо (postfix+Яндекс.ПДД совсем недолго, но сложно если ранее не делали).

Рассмотрим пример настройки для отправки писем с трёх разных сайтов через три разные почтовые службы. Перефразируя — условные три сайта работают одновременно и отправляют почту каждый со своего почтового домена.

Вымышленные пользователи и их email адреса

Установка и настройка ssmtp

Устанавливаем SMTP клиент

Файл конфигурации /etc/ssmtp/ssmtp.conf оставляем без изменений.

Создаём новые конфигурационные файлы для каждой почтовой службы

# touch /etc/ssmtp/ssmtp-gmail.conf # touch /etc/ssmtp/ssmtp-yandex.conf # touch /etc/ssmtp/ssmtp-mailru.conf

В файл /etc/ssmtp/revaliases заранее добавляем

batman:batman@gmail.com:smtp.gmail.com:465 tux:tux@linux.com:smtp.yandex.ru:465 joker:joker@anekdot.ru:smtp.mail.ru:465
root:batman@gmail.com:smtp.gmail.com:465 www-data:batman@gmail.com:smtp.gmail.com:465 batman:batman@gmail.com:smtp.gmail.com:465

Почему root и другие пользователи?

Через консоль мы будем отправлять от имени root, а через php от имени системного пользователя (использую mod_ruid).

В тестовом окружении можно позволить себе работать под root’ом. Но если сервер не ваш или дико важный продакшн, тогда вы ССЗБ.

Конфигурационные файлы ssmtp

Файл /etc/ssmtp/ssmtp-gmail.conf

mailhub=smtp.gmail.com:465 AuthUser=batman@gmail.com AuthPass=BWisthebest AuthMethod=LOGIN rewriteDomain=gmail.com hostname=localhost UseTLS=Yes #UseSTARTTLS=Yes TLS_CA_File=/etc/ssl/certs/ca-certificates.crt FromLineOverride=Yes #Debug=Yes

Файл /etc/ssmtp/ssmtp-yandex.conf

mailhub=smtp.yandex.ru:465 AuthUser=tux@linux.com AuthPass=nvidiasuxx AuthMethod=LOGIN rewriteDomain=linux.com hostname=localhost UseTLS=Yes #UseSTARTTLS=Yes TLS_CA_File=/etc/ssl/certs/ca-certificates.crt FromLineOverride=Yes #Debug=Yes

Файл /etc/ssmtp/ssmtp-mailru.conf

mailhub=smtp.mail.ru:465 AuthUser=joker@anekdot.ru AuthPass=waiting1april AuthMethod=LOGIN rewriteDomain=anekdot.ru hostname=localhost UseTLS=Yes #UseSTARTTLS=Yes TLS_CA_File=/etc/ssl/certs/ca-certificates.crt FromLineOverride=Yes #Debug=Yes

Проверка

Проверить отправку писем через консоль можно множеством способов.

Самый простой через pipe, добавляем здесь ключ -C для указания на конкретный конфигурационный файл (подробнее в man)

echo "Test text" | ssmtp -C/etc/ssmtp/ssmtp-gmail.conf vvp@kermlin.su echo "Test text" | ssmtp -C/etc/ssmtp/ssmtp-yandex.conf vvp@kermlin.su echo "Test text" | ssmtp -C/etc/ssmtp/ssmtp-mailru.conf vvp@kermlin.su
 mail('vvp@kermlin.ru', 'Пенсионная реформа', 'Смерть ворогам!'); ?>

Наступлю на грабли за вас

1 Для mail.ru и Yandex: перед отравкой почты необходимо зайти в почтовый ящик через веб-интерфейс. В противном случае будет ошибка

ssmtp: 550 Message was not accepted -- invalid mailbox. You need to complete your registration in order to send your mail. Please visit http://e.mail.ru/signup?NeedMoreInfo=1

2 Ещё одна ошибка

RCPT TO: (501 sender address must match authenticated user)

В revaliases добавляем нужных пользователей. В моём случае php-скрипты запускаются от имени системного пользователя, а не от nobody или www-data/httpd, поэтому в revaliases помимо root указаны логины системных пользователей.

3 Неверный From

Дальше я ещё сильнее расширил свои познания в Linux. Если у системного пользователя задан email, то именно он будет использоваться в поле From. Пример файла /etc/passwd

dx:x:1001:1001:username@gmail.com:/home/dx:/usr/sbin/nologin

4 Если в логе

Creating SSL connection to host SSL not working: certificate verify failed (20) Cannot open smtp.gmail.com:587

то добавьте в конфигурационный файл опцию TLS_CA_File

Путь для Ubuntu/Debian /etc/ssl/certs/ca-certificates.crt Путь для CentOS /etc/pki/tls/certs/ca-bundle.crt

Есть ли журнал/лог у ssmtp?

Да, для этого требуется добавить опцию Debug=YES. После чего в syslog будут записываться содержимое отправленных писем и почтовые заголовки.

Если не в syslog, то куда-нибудь уж точно. Найти поможет команда

Как указать сайту какой конфиг использовать

Наконец-то самое интересное

Если у каждого сайта свой php.ini, то

sendmail_path "/usr/sbin/ssmtp -t -C/etc/ssmtp/ssmtp-gmail.conf"

Либо через конфигурацию виртуального хоста

 . . php_admin_value sendmail_path "/usr/sbin/ssmtp -t -C/etc/ssmtp/ssmtp-gmail.conf" 
fastcgi_param PHP_VALUE "sendmail_path=/usr/sbin/ssmtp -t -C/etc/ssmtp/ssmtp-gmail.conf";

Заключение

Неразборчиво врачебным почерком у ssmtp есть есть аналог — msmtp.

Сайт rtfm.wiki использует cookies и трекинг посещений. Продолжая использовать этот сайт, вы соглашаетесь с сохранением файлов cookie на вашем компьютере. Если вы не согласны покиньте сайт или включите Adblock 😎 Окэйси Что такое cookies? 🍪

Источник

Как настроить отправку почты через SSMTP

Настройка отправки почты через SSMTP реализуется в три шага. Для этого нужно:

  1. Выбрать сервис для отправки писем:
    • mailganer,
    • Sendsay,
    • UniSender,
    • почта Google Workspace,
    • почта Microsoft Office 365,
    • почта Яндекс 360.
  2. Получить данные SMTP для настройки.
  3. Настроить SSMTP на сервере. Для настройки SMTP используются данные, которые получены у выбранного сервиса для отправки писем.

Ниже мы подробнее поговорим про получение данных и настройку.

Получить данные SMTP для настройки

Для настройки SMTP используются данные, которые получены у выбранного сервиса для отправки писем. Мы будем рассматривать настройку на примере существующей учетной записи у поставщика почты Gmail (аналогично можно использовать почту Яндекса).

Для настройки потребуются:

  • имя сервера (hostname);
  • порт (port). Для предупреждения несанкционированных почтовых рассылок, 25 TCP-порт заблокирован Selectel для исходящих соединений в направлении публичных IPv4 и IPv6 адресов. Рекомендуем использовать TCP-порт 587 и 465;
  • логин (login);
  • пароль (password). Получите пароль для приложения, это позволит избежать проблемы с двухфакторной авторизацией и не использовать свой основной пароль.

Получить пароль для приложения

  1. Откройте страницу своего аккаунта Google. При необходимости выполните вход.
  2. На странице Безопасность перейдите к разделу Вход в аккаунт Google.
  3. Нажмите Пароли приложений.
  4. Войдите в свою учетную запись Google.
  5. На странице Пароли приложений заполните значения параметров и нажмите Создать.
  6. Сохраните сгенерированный пароль, посмотреть пароль еще раз будет невозможно. Если пароль утерян, удалите его и создайте новый.
  7. Нажмите Готово.

Настроить SSMTP на сервере

Настройка выполняется через терминал.

1. Установите SSMTP.

# yum update # yum install ssmtp
# apt update # apt install ssmtp

2. Если у вас не установлен nano, установите его.

3. Настройте конфигурационный файл ssmtp.conf.

mailhub=smtp.gmail.com:587 hostname=smtp.gmail.com:587 root=ваш_аккаунт@gmail.com AuthUser=ваш_аккаунт@gmail.com AuthPass=ваш_пароль_для_приложения UseSTARTTLS=YES UseTLS=YES FromLineOverride=YES TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt 
hostname=localhost FromLineOverride=YES AuthUser=ваш_аккаунт@yandex.ru AuthPass=ваш_пароль_для_приложения smtp.yandex.ru:465 rewriteDomain=yandex.ru UseTLS=YES TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt 

4. Настройте конфигурационный файл revaliases:

root:ваш_аккаунт@gmail.com:smtp.gmail.com:587
root:ваш_аккаунт@yandex.ru:smtp.yandex.ru:465

5. Замените отправщик почты, который используется по умолчанию, на настроенный ssmtp:

# mv /usr/sbin/sendmail /usr/sbin/sendmail.orig

6. Создайте симлинк на ssmtp вместо sendmail:

# ln -s /usr/sbin/ssmtp /usr/sbin/sendmail

7. Проверьте отправку электронной почты:

# $ echo test | mail -v -s "testing ssmtp" адрес@получателя

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

Зарегистрируйтесь в панели управления

И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.

Читайте также:

Как написать свой REST API на Go? Разрабатываем сокращатель ссылок

Как начать работу с публичным облаком на базе VMware в Selectel

Знакомство с публичным облаком на базе VMware в Selectel

Источник

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

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

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

sudo apt-get install ssmtp
sudo nano /etc/ssmtp/ssmtp.conf

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

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

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

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

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

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

ssmtp [email protected] To: [email protected] From: [email protected] Subject: test #между темой и телом письма должна быть одна пустая строка, то бы ssmtp понял, что начинается тело. test #для отправки нужно нажать ctrl+D

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

Tags:

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

Источник

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

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

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

sudo apt-get install ssmtp
sudo nano /etc/ssmtp/ssmtp.conf

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

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

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

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

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

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

ssmtp [email protected] To: [email protected] From: [email protected] Subject: test #между темой и телом письма должна быть одна пустая строка, то бы ssmtp понял, что начинается тело. test #для отправки нужно нажать ctrl+D

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

Tags:

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

Источник

Читайте также:  Установка операционной системы linux реферат
Оцените статью
Adblock
detector