В статье будет описан способ установки Postfix и настройки его как relay для Яндекс 360 Бизнес . Думаю что вы уже добавили свою почту на yandex, если нет то Вам сюда.
Помните что почта для вашего домена теперь платная. Нужно бут оплатить хотя бы месяц подписки.
Установка необходимых пакетов
sudo apt-get install postfix mutt
Настройка PostFix
Для настройки PostFix, как релей yandex, откроем файл /etc/postfix/main.cf для редактирования:
sudo nano /etc/postfix/main.cf
Удалим все его содержимое и вставим следующий текст
###############################
#### Основные параметры
smtpd_banner = $myhostname ESMTP server
biff = no
#### TLS параметры
smtpd_use_tls=yes
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_CAfile = /etc/postfix/yandex.crt
#### информация о включении SSL в SMTP-клиенте.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
relayhost =
#### SASL параметры
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sasl_mechanism_filter = login
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay
sender_canonical_maps = hash:/etc/postfix/private/canonical
###########################################################
## Ограничения и запреты
# Запретить ETRN команду
smtpd_etrn_restrictions = reject
# Запретить VRFY команду
disable_vrfy_command = yes
# Требовать наличие EHLO (HELO) команды
smtpd_helo_required = yes
# Всегда отклонять письма для всех неизвестных ящиков
smtpd_reject_unlisted_recipient = yes
# Ограничения на клиента - принимаем только если есть PTR (не жёсткий запрет)
smtpd_client_restrictions =
permit_mynetworks
reject_unknown_reverse_client_hostname
permit
# Ограничения на HELO. Отклоняем письма от всех хостов, которые даже представиться не могут
smtpd_helo_restrictions =
permit_mynetworks
reject_invalid_helo_hostname
reject_non_fqdn_helo_hostname
permit
# Ограничения на MAIL FROM. Отклоняем все письма, отправитель которых предоставил невалидный адрес
smtpd_sender_restrictions =
reject_non_fqdn_sender
reject_unknown_sender_domain
permit
# Ограничения на RCPT TO. Принимаем только для известных нам адресов
smtpd_recipient_restrictions =
reject_non_fqdn_recipient
reject_unlisted_recipient
permit_mynetworks
reject_unauth_destination
permit
# Ограничения на данные. Не принимаем в случае некорректной передачи
smtpd_data_restrictions =
reject_unauth_pipelining
Т.к. взаимодействие с сервером идёт по TLS, не помешает скачать сертификат SMTP-сервера.
Добыть сертификат можно вот так:
openssl s_client -starttls smtp -crlf -connect smtp.yandex.ru:25
Из вывода нам нужно что-то вроде такого:
-----BEGIN CERTIFICATE-----
MIIGazCCBVOgAwIBAgIQcUU9mJXW4OUs5Gf0JfLtsjANBgkqhkiG9w0BAQsFADBf
MQswCQYDVQQGEwJSVTETMBEGA1UEChMKWWFuZGV4IExMQzEnMCUGA1UECxMeWWFu
ZGV4IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQDEwlZYW5kZXggQ0Ew
HhcNMTcxMDExMTMyNzI2WhcNMTkxMDExMTMyNzI2WjB3MQswCQYDVQQGEwJSVTET
MBEGA1UECgwKWWFuZGV4IExMQzEMMAoGA1UECwwDSVRPMQ8wDQYDVQQHDAZNb3Nj
b3cxGzAZBgNVBAgMElJ1c3NpYW4gRmVkZXJhdGlvbjEXMBUGA1UEAwwOc210cC55
YW5kZXgucnUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCTI5WsplxQ
g7gZDCEmnbxHI0a0/cXtx0+Zwz7Y9TSFy0NI/SzYC+bgukWvsnvuIheM3yKpJ+cU
Ss2G+K3nKOYDNJUezzziirhu3UVC/tZLD39orKKGAa6qmx5Dv2Z7/ynkOfKZjmXB
t9HemoCItyM62YTD8AQQmkMCB4Kue+j2wm8fHxPtgIYuQzEtD9xCU9vANj6imgaM
IlrM0cegknd6sWBDR074pDsBEUjg2GsNSqAo2nD0tvOGCFZ2qkIMLIjZgsCmtain
nM7Xt+THw8ApMu9BVsgTyXMTfVC0CzfB1HbId1UzqIbILprB3iLrxCHn3K1F68ok
WfBXBDY4gphTAgMBAAGjggMJMIIDBTAMBgNVHRMBAf8EAjAAMGkGA1UdHwRiMGAw
L6AtoCuGKWh0dHA6Ly9jcmxzLnlhbmRleC5uZXQvY2VydHVtL3ljYXNoYTIuY3Js
MC2gK6AphidodHRwOi8veWFuZGV4LmNybC5jZXJ0dW0ucGwveWNhc2hhMi5jcmww
cQYIKwYBBQUHAQEEZTBjMCwGCCsGAQUFBzABhiBodHRwOi8veWFuZGV4Lm9jc3At
cmVzcG9uZGVyLmNvbTAzBggrBgEFBQcwAoYnaHR0cDovL3JlcG9zaXRvcnkuY2Vy
dHVtLnBsL3ljYXNoYTIuY2VyMB8GA1UdIwQYMBaAFDdc4xngso6hqE7Sz6vQ3OML
XDVNMB0GA1UdDgQWBBTC1Kbatmr8y04cui/VCaPVq1mgKzAOBgNVHQ8BAf8EBAMC
BaAwggEXBgNVHSAEggEOMIIBCjCCAQYGDCqEaAGG9ncCBQEKAjCB9TCB8gYIKwYB
BQUHAgIwgeUwIBYZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjADAgECGoHAVXNh
Z2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdHJpY3RseSBzdWJqZWN0ZWQgdG8g
dGhlIENFUlRVTSBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudCAoQ1BT
KSBpbmNvcnBvcmF0ZWQgYnkgcmVmZXJlbmNlIGhlcmVpbiBhbmQgaW4gdGhlIHJl
cG9zaXRvcnkgYXQgaHR0cHM6Ly93d3cuY2VydHVtLnBsL3JlcG9zaXRvcnkuMB0G
A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjARBglghkgBhvhCAQEEBAMCBsAw
egYDVR0RBHMwcYIOc210cC55YW5kZXgucnWCDnNtdHAueWFuZGV4LmJ5gg5zbXRw
LnlhbmRleC5reoIPc210cC55YW5kZXguY29tgg5zbXRwLnlhbmRleC51YYISc210
cC55YW5kZXguY29tLnRyggpzbXRwLnlhLnJ1MA0GCSqGSIb3DQEBCwUAA4IBAQA1
GjyKSYMgaRVLGd4EWtB3oTkybDu5QrUXt/eoZiquzUqZwk7x9FRsEEirawKsrSS6
FXcliRD7xcXneROVDZK1a4ur6974vn742B/lOx9T/7+6a8XQo4jz191zZWS3J47G
dSvkMZPSdsZPxn7cDbAymFP4yw3b/aJJBFarpYTUixvRXZardO93VAFx157pCt/8
3dN7jLWyYVWBvZh93JioukAu9uDt7Nzuq9XhTBLUzLnFFi4vXVsssKk7h3X2sMNU
kZ3EPMAOSsvl9XY5RHZJs7BZubvGgnDxxGFfziP1XnTbL4MRCAXbdhwx3nmnQ3yZ
nRG0DfdqYIuPGApFORYe
-----END CERTIFICATE-----
..и сохранить в файл (в моём случае /etc/postfix/yandex.crt).
sudo nano /etc/postfix/yandex.crt
Далее необходимо создать папку /etc/postfix/private
sudo mkdir /etc/postfix/private
Перейдем в папку и создаем три файла для Postfix:
cd /etc/postfix/private && sudo touch canonical sender_relay sasl_passwd
Откроем файл canonical и добавим следующий текст:
sudo nano canonical
Содержимое:
@yandex.ru user@yandex.ru
где
user@yandex.ru — Ваша почта на Яндексе
Далее откроем файл sender_relay:
sudo nano sender_relay
Содержимое:
@yandex.ru smtp.yandex.ru
И наконец:
sudo nano sasl_passwd
С содержимым:
[smtp.yandex.ru] user@yandex.ru:password
где
user@yandex.ru — Ваша почта на Яндексе,
password — Ваш пароль от ящика.
Запускаем созданные файлы в работу:
sudo postmap /etc/postfix/private/*
Также необходимо создать файл aliases:
sudo nano /etc/aliases
В него необходимо занести записи сопоставлений пользователей и почты для них. У меня в нем находятся следующие записи:
postmaster: root
root: user@ваша-почта-на-яндекс.ru
Данная запись будет отправлять всю почту предназначенную для пользователя root на вашу почту от яндекса.
Чтобы изменения вступили в силу, необходимо обновить базу алиасов командой:
cd /etc && sudo newaliases
Перезапускаем PostFix:
sudo service postfix restart
Отправляем почту
Все, можно проверять работу с помощью, например, mutt. Отправим тестовое сообщение на наш e-mail, но на другой почтовый сервер. Что-бы не было локального заворота на свою же почту.
echo "test" | mutt -s "test" user@mail.ru
user@mail.ru — ваш яшик на mail.ru
Чтобы отправить файл, надо добавить ключ -a затем сам файл:
echo "test" | mutt -s "test" user@yandex.ru -a /home/user/file.txt
Проверить настройки можно также вот такой командой (без установки mutt)
echo test | sendmail -v почта@куда_отсылаем
Если что-то не получается, курим логи:
tail -f /var/log/mail.log
[endtxt]