Проксі-повідомлення на інший smtp-сервер із Postfix


11

Як я можу переслати (або проксі) пошту на різні smtp-сервери залежно від адреси To?

У мене є одна машина з прослуховуванням сервера SMTP (postfix) на порту 25. Я хочу використовувати Lamson ( http://lamsonproject.org/ ) для обробки деякої вхідної пошти та деякої пошти, з якою я хочу мати постфікс.

Моя ідея - налаштувати Ламсона на прослуховування на іншому порті, скажімо localhost: 10025. Потім я встановлюю постфікс, щоб виловлювати всю пошту, слухаючи порт 25.

Як налаштувати Postfix на проксі певну пошту до Lamson на 10025 та обробляти всю іншу пошту?

Відповіді:


18

Postfix є надзвичайно гнучким (і, отже, складним) у своїй конфігурації, тому існують різні способи цього досягти. Найпростішим способом, мабуть, було б використання transport(5)таблиці.

Спочатку увімкніть використання транспортної таблиці в постфіксі:

/etc/postfix/main.cf:
    transport_maps = hash:/etc/postfix/transport

Вам також доведеться переконатися, що Postfix приймає пошти за адресами, які буде оброблятися Лемсоном. Погляньте на permit_auth_destinationправила, які Postfix застосовуватиметься для визначення дійсних адрес одержувача. Для наступного прикладу, якщо припустити, що "example.com" - це домен, не відомий Postfix, мабуть, найпростіше просто додати його як ретрансляційний домен:

/etc/postfix/main.cf:
    relay_domains = example.com

Потім створіть відповідну таблицю. Наприклад, щоб переспрямувати всю пошту для домену "example.com", а також пошту для "user@mydomain.org" на ваш місцевий Lamson, який слухає порт 10025:

/etc/postfix/transport:
    example.com          smtp:127.0.0.1:10025
    user@mydomain.org    smtp:127.0.0.1:10025

Після цього (а потім один раз після кожного оновлення файлу транспортної таблиці) не забудьте запустити:

$ postmap /etc/postfix/transport

Це має змусити вас піти. Обов’язково прочитайте сторінку transport(5)man, яка дасть вам більше ідей щодо використання цього потужного засобу.


Привіт, дякую за пораду. У мене все ще виникають проблеми з передачею пошти після виконання ваших інструкцій. Я отримую NOQUEUE: відхилити: RCPT від {my-mail-relay} Адресат адреса відхилений: користувач невідомий у місцевій таблиці одержувачів. Будь-які ідеї?
Маттіас

Ага так, вам також доведеться переконатися, що Postfix приймає пошту для передачі на адресу example.com (оскільки Postfix зараз виступає ретрансляцією для Лемсона). Якщо ваш Postfix в основному обслуговує інший домен, найпростіший спосіб досягти цього - додавання домену Lamson relay_domains. Я оновив відповідь, щоб включити це.
граф

1
Дякую, виконуючи ваші дії, у мене все ще виникали проблеми з отриманням постфіксу, щоб визнати localhost як дійсний хост. Я запустив команду postconf -e 'smtp_host_lookup = dns, рідний', і це вирішило мою проблему, postfix тепер пересилає пошту, яку я хочу до Лемсона.
Маттіас

1
Приємно чути, що це працює. Замість зміни smtp_host_lookupви можете також використовувати 127.0.0.1замість localhost. Я оновив відповідь, щоб відповідати цьому покращенню.
граф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.