Как изменить тему письма и адрес отправителя через postfix

Хочу поделиться парочкой полезных советов по настройке почтового сервера. Я расскажу, как автоматически изменять тему всех отправляемых сообщений через postfix, а так же подменять адрес отправителя. На днях в комментариях к одной статье про отправку почты, читатель показал простое и интересное решение, которое я решил проверить, дополнить и оформить в виде отдельной статьи.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .

Цели статьи

  1. Настроить автоматическое изменение темы сообщений, отправляемых через postfix. На конкретном примере я покажу, как ко всем сообщениям добавлять в тему имя сервера.
  2. Настроить автоматическую замену адреса отправителя. В моем примере я буду заменять локальный адрес отправителя root на адрес пользователя для отправки почты через внешний сервер яндекса — smtp.yandex.ru.

Введение

Данная статья будет написана по мотивам другого материала — отправка почты через консоль с авторизацией. В целом, там представлено законченное решение, но в некоторых случаях требуется дополнительная настройка.

В комментариях читатель захотел использовать один и тот же почтовый ящик для отправки оповещений с нескольких серверов. Для удобной сортировки в ящике получателя нужно было как-то разделить письма по серверам. Когда отправитель один, других надежных признаков для сортировки не найти.

Я сходу предложил решение по автоматическому изменению темы сообщения через postfix, так как предполагал, что он это умеет и не ошибся. Читатель вернулся и подсказал, как это легко и быстро настроить. Я проверил решение, оно реально рабочее, поэтому решил оформить в виде отдельной статьи. Думаю, это будет полезно остальным.

Замена адреса отправителя может быть полезна в разных ситуациях. Я ее буду использовать конкретно для решения проблемы с отправкой писем через почтовые сервера Яндекса. Для успешной отправки письма, Яндекс требует, чтобы адрес отправителя в письме совпадал с адресом для авторизации на сервере. Если это не будет сделано, то вы получите ошибку во время отправки — Sender address rejected: not owned by auth user.

May  8 15:13:14 prox-centos7 postfix/smtp[6297]: D84A51807123: to=<zeroxzed@gmail.com>, relay=smtp.yandex.ru[93.158.134.38]:587, delay=0.17, delays=0.02/0.01/0.13/0.01, dsn=5.7.1, status=bounced (host smtp.yandex.ru[93.158.134.38] said: 553 5.7.1 Sender address rejected: not owned by auth user. (in reply to MAIL FROM command))

Происходит это потому, что отправка системных сообщений идет от локального пользователя root. Имя отправителя в письме будет примерно такое — root@prox-centos7.loc. В данном случае prox-centos7.loc это локальное имя сервера. Я его заменю на учетную запись яндекса.

Замена адреса отправителя в postfix

Начнем с подмены отправителя, чтобы можно было сразу тестировать отправку. Для этого добавляем в конфиг postfix /etc/postfix/main.cf следующий параметр.

smtp_generic_maps = hash:/etc/postfix/generic

Там же у меня есть такие параметры:

myhostname = prox-centos7
mydomain = prox-centos7.loc
mydestination = $myhostname

Файл generic у вас уже должен быть. Если нет, то создайте его. Далее добавляем в него одну строку.

root@prox-centos7.loc root@serveradmin.ru
root@prox-centos7.loc Локальный пользователь сервера.
root@serveradmin.ru Пользователь сервера yandex. В данном случае домен serveradmin.ru привязан к почте яндекса.

Перезапускаем postfix и проверяем отправку.

Как изменить тему письма и адрес отправителя через postfix

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

Автоматическая замена темы писем в postfix

Переходим к замене темы письма. Для этого добавляем в конфиг postfix /etc/postfix/main.cf следующий параметр.

header_checks = pcre:/etc/postfix/rewrite_subject

Создаем файл rewrite_subject следующего содержания:

/^Subject: (.*)$/ REPLACE Subject: (prox-centos7) $1

Это регулярное выражение, которое меняет заголовок письма, начинающийся с Subject. Оно добавляет в начало темы имя сервера в скобках — (prox-centos7). Вы можете добавлять что-то свое. Для тех, кто вообще не разбирается в регулярках, поясню, что в данном случае $1 это исходное содержание темы.

Перезапускаем postfix и проверяем, отправив через консоль письмо.

# df -h | mail -s "Disk usage" zeroxzed@gmail.com

Как изменить тему письма и адрес отправителя через postfix

Проверяем ящик и видим там письмо.

Как изменить тему письма и адрес отправителя через postfix

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

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Я рекомендую собирать системные сообщения с разных серверов тем или иным способом. Там часто бывает критически важная информация, которая не будет лишней, даже если у вас хорошо настроена система мониторинга, например zabbix.

Если вас интересует настройка полноценного почтового сервера postfix, то у меня есть очень подробная статья на эту тему.

Буду рад полезным замечаниям и дополнениям. Ваши комментарии иногда делают меня умнее 🙂

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте . Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Источник

Просмотров:

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