Postfix — отправляем почту через yandex smtp

Сегодня я расскажу, как научить Ваш сервер с Postfix отправлять почту через почтовый сервис Яндекса.

postfx send mail via yandex

Для чего это нужно ?

  • Если к Вашему серверу не привязан никакой домен или у него нет своего внешнего IP.
  • Если Вам нужна гарантия, что почта выходящая с сервера не попадет в СПАМ.
  • И еще много разнообразных причин.

Ставить Postfix и настраивать его для отправки писем через smtp.yandex.ru будем на Ubuntu, т.к. я настраивал именно на ней.

Для начала нам нужно установить пакет Stunnel4, для соединения с smtp.yandex.ru через SSL.

apt-get install stunnel4

После успешной установки создаем конфигурационный файл:

vim /etc/stunnel/yandex.conf

С таким содержанием:

[smtp]
client = yes
accept = 127.0.0.1:25025
connect = smtp.yandex.ru:465

И запускаем сервес:

service stunnel4 start

Теперь приступим к установке самого сервера Postfix с возможностью авторизации SASL:

apt-get install postfix sasl2-bin

В процессе установки Вам будут заданны несколько вопросов.

Теперь самое главное, в конфигурационный файл (/etc/postfix/main.cf) нужно добавить эти строки, я добавлял в самый конец файла:

smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_type = cyrus
smtp_sasl_security_options = noanonymous

И поменять в этом файле значение этой строчки:

relayhost = localhost:25025

Которая говорит нашему серверу, что соединяться надо через stunnel4.

Так же нужно создать еще два файла:

/etc/postfix/sender_relay — этот файл говорит, что если отправитель my_email@yandex.ru, то его нужно отправлять через яндекс.

my_email@yandex.ru smtp.yandex.ru

/etc/postfix/sasl_passwd — здесь мы указываем логин и пароль для smtp.yandex.ru

smtp.yandex.ru my_email@yandex.ru:MyPaSSorD

Теперь нам нужно подготовить эти файлы:

postmap /etc/postfix/sender_relay
postmap /etc/postfix/sasl_passwd

Вот и все, теперь можно запускать наш сервер Postfix в работу:

service postfix restart

И не забудьте, что отправлять Вы должны от пользователя указанного в конфигах (my_email@yandex.ru).

  • pajke 18.03.2014

    не робит ,думаю,что виновен стунель. А без него можно как-то?

  • Alexander 12.08.2014

    Спасибо за статью! Но у меня не все прошло гладко.
    1. Потребовался сертификат stunnel
    Добавить в /etc/stunnel/yandex.conf
    cert = /etc/stunnel/stunnel.pem

    2. В файле /etc/postfix/sasl_passwd указать
    localhost my_email@yandex.ru:MyPaSSorD
    Именно localhost, если указать другое — будет ошибка 503 send auth command first

    Пожалуй добавлю еще несколько строчек конфигурации main.cf
    inet_interfaces = 127.0.0.1
    inet_protocols = all

  • Alexander 12.08.2014

    Создать stunnel сертификат
    openssl genrsa -out key.pem 2048
    openssl req -new -x509 -key key.pem -out cert.pem -days 1095
    cat key.pem cert.pem >> /etc/stunnel/stunnel.pem

  • Admin 16.09.2014

    Не правильная у Вас статья

    Это не нужно:
    sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay

    В /etc/postfix/sasl_passwd указываем:
    [127.0.0.1]:25 my_email@yandex.ru:MyPaSSorD

  • Дмитрий 22.02.2015

    А как быть если хотим использовать несколько ящиков? И нужна аутентификация от разных аккаунтов.

  • Виктор 09.11.2015

    Спасибо что подняли такую важную и нужную тему. Действительно, со стандартным отправщиком почты в вордпрессе есть проблемы с доставкой почты. Особенно если почту отправляет не пордпрес, а к примеру сторонний плагин, такой как Contact Form 7.

  • juliadiets.com 15.03.2016

    Такая же проблема, не работает Contact Form 7, что делать? Или может есть какой то аналог Contact Form чтобы через него пользователи могли отправлять сообщения?

  • pbk 20 25.09.2016

    на несколько ящиков просто создаются дубли строк с указанием нового ящика в каждой новой строке, сколько нужно столько и пишем. Вуаля!!

Добавить комментарий