Почтовый Relay на Postfix для пересылки писем через почтовый сервер провайдера.
В одной организации использовалась корпоративная электронная почта от Microsoft под названием office 365. Это Exchange Online — облачный сервис электронной почты для организаций.
Все работали в одной локальной сети, т.е. почтовые клиенты были в одной локальной сети.
Поставили такую задачу.
Нужно поднять Relay (почтовый пересыпщик), для того, чтобы все письма из локальной сети попадали на локальный Relay, а этот Relay будет пересылать почту через основной почтовый сервер, находящийся где-то в облаке - office 365.

- Письма от клиентов будут идти на Relay по протоколу SMTP.
- Relay будет работать для клиентов только из локальной сети.
- От Relay к почтовому серверу по протоколу SMTP.
- На Relay почтовых ящиков нет, они на почтовом сервере.
- Забираются письма с сервера клиентами по протоколу POP3.
- Почтовый сервер в облаке требует SMTP аутентификацию.
- На почтовом сервере 50 ящиков, которые принадлежат этой компании.
Решение.
Устанавливать postfix будем на ubuntu 14.04. И так, у нас есть установленная система, обновленная. Приступаем устанавливать:
$ sudo apt-get install mailutils
Во время установки появится всплывающее окно. Выберите в качестве сервера Internet Site, а в качестве FQDN укажите hostname сервера.
Далее нужно отредактировать главный конфигурационный файл postfix - /etc/postfix/main.cf
$ sudo nano /etc/postfix/main.cf
Указываем в качестве значения параметра relayhost - адрес smtp сервера:
relayhost = [smtp.office365.com]:587
Указываем сеть, из которой разрешено принимать соединения на нашем relay - это наша локальная сеть:
mynetworks = 192.168.1.0/24
И ниже дописываем секцию:
# Relaying Postfix SMTP via GMAIL
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_security_options = noanonymous
На этом редактирование заканчиваем, сохраняем конфигурационный файл и закрываем его.
Далее нужно занести учетные данные для аутентификации на почтовом сервере. Редактируем /etc/postfix/sender_relay, добовляя учетные данные, для пересылки на наш сервер:
$ sudo nano /etc/postfix/sender_relay
Вносим:
[email protected] [smtp.office365.com]:587
[email protected] [smtp.office365.com]:587
[email protected] [smtp.office365.com]:587
[email protected] [smtp.office365.com]:587
Далее правим /etc/postfix/sasl_passwd, тут нужно указать учетные данные с паролями:
$ sudo nano /etc/postfix/sasl_passwd
Вносим в таком формате - учетные данные приходящие (они записаны в /etc/postfix/sender_relay), далее учетные данные на сервере, двоеточие и пароль от почтового ящика:
[email protected] [email protected]:password
[email protected] [email protected]:password
[email protected] [email protected]:password
[email protected] [email protected]:password
Сохраняем конфигурационный файл, закрываем.
Меняем права доступа к файлу, где у нас хранятся пароли:
$ sudo chmod 400 /etc/postfix/sasl_passwd
Делаем hash из файлов /etc/postfix/sender_relay и /etc/postfix/sasl_passwd. У нас получатся файлы sasl_passwd.db и sender_relay.db. Именно этими файлами и будет пользоваться postfix.
$ sudo postmap /etc/postfix/sender_relay
$ sudo postmap /etc/postfix/sasl_passwd
Добавляем в postfix сертификат этой командой. Главное проверьте, что у вас есть файл /etc/ssl/certs/Thawte_Premium_Server_CA.pem, или выберете другой:
$ cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem
Перезагружаем pstfix:
$ sudo service postfix restart
Действия на клиенте.
В почтовом клиенте до создания локального Relay, были такие настройки:
- smtp: smtp.office365.com:587
- pop: outlook.office365.com:995
- логин и пароль для smtp: [email protected] / password
- логин и пароль для pop: такие же.
После создания нашего relay, изменился только адрес smtp:
- smtp: ip_relay:25
- pop: outlook.office365.com:995
- логин и пароль для smtp: [email protected] / password
- логин и пароль для pop: такие
Какие изменения это дало?
Тут мы преследовали одну задачу, а именно ускорить отправку писем. Почтовый relay решил эту задачу, почта из клиента уходит моментально, так как relay и клиент находится в одной локальной сети.
