Home » Linux » Postfix - настройка relayhost, отдельный для каждого домена

Postfix - настройка relayhost, отдельный для каждого домена

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

В общем случае проблема пересылки почты решается очень просто. Если вы хотите, чтобы отправка всей почты шла через другой smtp сервер, достаточно указать адрес этого сервера в параметре postfix.

relayhost = mailsrv.mymail.ru:25

После этого вся исходящая почта будет отправляться на сервер mailsrv.mymail.ru. Мне такой вариант не подходил. Я хотел потестировать proxmox mail gateway на рабочем сервере, но только на одном домене. Для этого мне надо было почту одного конкретного домена направить на отправку через новый почтовый шлюз.

Почему-то в интернете нашел много советов настроить пересылку почты через transport_maps. Я потестировал этот параметр, но он не для моего случая. С помощью transport_maps вы можете пересылать всю входящую почту на какой-то другой сервер. Мне же нужно было не пересылать входящую, а настроить именно отправку сообщений, то есть исходящую почту.

Чтобы сделать то, что мне надо, необходим параметр - sender_dependent_relayhost_maps. Добавляем его в конфиг в таком виде:

sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map

Содержимое файла relayhost_map.

@prox.mymail.ru 10.1.3.15:26

Создаем индексированную базу из этого файла:

# postmap hash:/etc/postfix/relayhost_map

После этого можно перезапускать postfix и проверять. В данном случае я отправил всю почту с домена prox.mymail.ru через внешний smtp сервер 10.1.3.15 на 26-й порт. Его использует proxmox mail gateway для пересылки почты. Все остальные домены как отправляли почту сами локально, так и будут отправлять.

В целом, мне понравился proxmox mail gateway, думаю, буду его использовать. Немного усложняется структура почтового сервера, так как надо разделять smtp службы и imap по разным серверам, но в целом там все очень удобно собрано в одном месте с хорошей панелью управления. Возможно, напишу статью. Его можно использовать совместно с классическим почтовым сервером на postfix.

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

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

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

20 комментариев

  1. Добрый день! Подскажите, пожалуйста, при создании пользователя в postfixadmin делаю следующее: ввожу setup пароль, email пользователя любой, и два раза пароль для него и жму кнопку "Добавить администратора".
    Получаю ошибку: Everything seems fine... attempting to create/update database structure

    Database is up to date: 1841/0

    DEBUG INFORMATION:
    Invalid query: ERROR: invalid input syntax for integer: "t" LINE 1: ..._domain_count,0) as domain_count,CASE active WHEN 't' THEN '... ^

    Check your error_log for the failed query.

    В логах вижу:
    PHP message caused by query SELECT username,password,password as password2,CASE superadmin WHEN 't' THEN '1' WHEN 'f' THEN '0' END as superadmin,CASE superadmin WHEN 't' THEN 'ДА' WH$ WHERE 1=1 AND ( username='postmaster@мойдомен' ) ORDER BY username" while reading response header from upstream, client: ххх.ххх.ххх.ххх (ip адрес), server: _, request: "POST /padmin/publi$ 2021/12/16 12:32:51 [error] 1143#0: *294 FastCGI sent in stderr: "PHP message: Invalid query: ERROR: invalid input syntax for integer: "t"

    Подскажите, как можно исправить ?

  2. Руслан

    Добрый день! Подскажите как сделать так чтоб Postfix отправлял исходящие письма с машины находящейся в VPN , можно ли это реализовать без доп smtp сервера?

    • Тут 2 варианта:
      1. Вы делаете машину с vpn шлюзом для почтового сервера с postfix. Тогда он всю почту отправляет через него, как и прочий сетевой трафик.
      2. Вы на vpn сервере настраиваете smtp сервер и на postfix указываете его в качестве relayhost.

      Выбирать вам, как лучше сделать, в зависимости от ваших условий.

  3. Здравствуйте! Посоветуйте, как выйти из ситуации, и вообще реально ли это. В организации настроен старый postfix, и люди баловались алиасами. Теперь в /etc/aliases нахожу записи вида user1: user1, user2, user3... и user2: user2, user1, user3 ... И в логах жалуется на петлю, при этом сами пользователи хотят получать письма друг друга "как они всегда делали!" Я так понимаю через алиасы эту проблему не решить, существуют ли какой-то другой метод, который решит мою проблему?

    • Так петлю просто убрать надо. Ее можно при любом способе хранения алиасов сделать. Надо группировать алиасы и пользователей по-другому.

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

  4. Евгений

    Доброй ночи. Хотел спросить может что посоветуете и куда двигаться.
    Задача следующая:
    В офисе есть почтовый сервер назовем его так mail-1 установлен postfix+dovecote, выделенный ip, домен example-1.com, и направлен на ip. Все работает.
    На хостинге есть VPS с выделенным ip, необходимо настроить через него отправку и прием почты для домена example-1.com и с пересылкой на сервер mail-1
    Аналогично настроен почтовый сервер mail-2, с доменом example-2.com. Необходимо также через уже оговоренный VPS принимать и отправлять почту.

  5. Добрый вечер!
    Бьюсь уже который час, никак не могу вьехать. Есть SMTP типо [smtp.zoho.com]:587 - на нем есть два пользователя на одном домене, первый это noreply@mydomen.ru - со своим логином и паролем, и второй info@mydomen.ru - также со своим логином и паролем для smtp. Они оба находятся на одном домене, где произвести их настройку???? Подскажите куда копать если тут /etc/postfix/sasl_passwd их прописываю обоих то он ругается типо дубликат((((

    Нужна только отправка почты и все.

  6. Василий

    Добрый день.
    Нетривиальный вопрос. а можно сделать в постфиксе маршрутизацию исходящих писем на основе домена получателя а не отправителя.
    Например - все письма уходят напрямую, а для домена получателя zzz.com через релей mail.xyz.ru:25

  7. Сергій

    Надо, наверное, упомянуть, что таблица sender_dependent_relayhost_map, которую Вы используете, имеет приоритет выше relayhost, но ниже transport_maps и relay_transport. И если последние параметры определены в кофиге, то таблица не сработет

  8. Дмитрий

    Есть проблема поставил proxmox mail gateway почтовый сервер настраивал по вашей инструкции.
    но теперь с этой связкой не проходит проверка существования почтового ящика на валидность.
    Server doesn't allow e-mail address verification
    Пишет что ящик не существует не знаю в какую сторону смотреть, без pmg все нормально.

    • Максим

      Была похожая проблема, но только в роли анти-спама использую Cisco ironport. Решение было следующее :
      в main.cf необходимо раскомментировать строку relay_recipient_maps = hash:/etc/postfix/relay_recipients.
      В etc/postfix/ создать relay_recipients и внести в него адреса получателей вида example@exampe.com OK и так же нельзя забывать про служебные учётные записи postmaster@, abuse@, webmaster@ hostmaster@ которые так же нужно указать в relay_recipients , после чего обязательно делаем postmap relay_recipients , далее postfix reload и всё должно работать. Так же можно настроить relay_recipietns по средствам LDAP если у вас домен и много пользователей дабы не забивать всё в ручную.

  9. Алексей

    А можно узнать по какой причине использовался PMG только для отправки писем, а не для приема также? Просто интересны сами случаи, когда есть не совсем стандартная конфигурация.

    У себя используем PMG как почтовый шлюз больше года в связке с Zimbra для входящей и исходящей почты для нескольких почтовых доменов.
    Полет нормальный, PMG показал себя только с положительной стороны. Спам ловит неплохо, при этом мы сами немного закрутили гайки дополнительно. Есть стандартные опции по фильтрации почты, белые, черные и greylist списки, прикручен стандартный антивирус и т.
    д.

    • Для приема он тоже используется. Для этого на самом почтовом сервере никаких настроек делать не надо.

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

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.