Настройка smtp клиента linux

Почта: настройка 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? 🍪

Источник

Установка SMTP-клиента SSMTP на базе Ubuntu Server 14.04 LTS / Debian 8 Jessie. Настройка отправки почты.

Разберем как установить и настроить простой SMTP-клиент SSMTP ( Simple Mail Transfer Protocol — простой протокол передачи почты) на базе Ubuntu Server 14.04 LTS / Debian 8 Jessie.

Установка SSMTP

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

sudo apt-get update && sudo apt-get upgrade -y

Устанавливаем SSMTP из репозиториев:

sudo apt-get install ssmtp

Конфигурация SSMTP сервера

Делаем резервную копию файла конфигурации:

sudo cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.backup

Редактируем файл конфигурации /etc/ssmtp/ssmtp.conf:

# Адрес SMTP-сервера mailhub=192.168.1.2:587 # Авторизация на SMTP-сервере AuthUser=test@test.ru AuthPass=Aa1234567 # Разрешать скриптам выбирать с какого ящика отправлять письмо FromLineOverride=YES # Принудительное переписывание домера в поле FROM: rewriteDomain=test.ru # Использовать SSL/TLS шифрования #UseSTARTTLS=YES # Использовать TLS шифрования UseTLS=YES # Ящик, куда будет отправляться вся локальная почта предназначенная пользователям с uid < 1000. В том числе, root. root=test@test.ru

Для защиты сервера от возможности слать через него спам с пользовательских учеток, необходимо указать явно почта от какого пользователя и с какого ящика может уходить. Редактируем файл алиасов /etc/ssmtp/revaliases:

root:test@test.ru:192.168.1.2:587

Установим использование SSMTP по-умолчанию в системе. Выполняем:

sudo mv /usr/sbin/sendmail /usr/sbin/sendmail.old sudo ln -s /usr/sbin/ssmtp /usr/sbin/sendmail
echo "Test message" | mail -s Test test@test.ru

Если все настроено верно, то письмо отправится.

Понравилась или оказалась полезной статья, поблагодари автора

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

Источник

Как установить простой 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:

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

Источник

Читайте также:  Stat in linux example
Оцените статью
Adblock
detector