Назад | Перейти на главную страницу

Как переслать автоматический ответ на входящие письма?

Наша компания только что перешла на новый почтовый домен и хочет сохранить старый домен в течение года, так как они уведомляют всех об изменении. Старый домен электронной почты был в Exchange 2007, а новый домен электронной почты - в Google Apps. Все используют Google Apps на 100%, а сервер Exchange просто пересылает электронные письма.

Я хотел бы заменить сервер Exchange (он недостаточно мощный и тратит ресурсы на пересылку писем) чем-то легким, основанным на Postfix или другом почтовом сервере. Для этого нужно сделать следующее:

  1. Пересылать электронные письма, отправленные на old_domain.com, на new_domain.com
  2. Автоматический ответ отправителю о том, что адрес электронной почты всех пользователей изменился на new_domain.com

Возможно ли это с Postfix, и есть ли у кого-нибудь документация, как это сделать? Я знаю Linux достаточно, чтобы быть опасным, поэтому я хочу убедиться, прежде чем предлагать это.

Я полагаю, вы хотите подделать сообщение об отказе в старом домене. Я использую Exim, и это средство управления.

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

Exim также позволяет настраивать сообщения о недоставке в файле псевдонимов. Это можно использовать для указания нового адреса.

Postfix или exchange могут иметь аналогичную функциональность.

EDIT: документация Exim неплохая. См. Главу 40 спецификации (Списки контроля доступа) и главу 11 (Расширения строк) для получения подробной информации о вашей проблеме.

Вы можете попробовать ввести запись в ACL получателя примерно так:

warn
    domains = old.example.com
    control == fakereject/User ${local_part}@old.example.com has moved \
          ${local_part}@new.example.net\n\
          Your message has been forwarded to their new address.

Перенаправление на ваш новый сервер может быть выполнено с помощью индивидуальных псевдонимов, маршрутизатора перенаправления (см. Главу 22, раздел 3) или правила перезаписи (см. Главу 31 Переопределение адреса), например:

*@old.example.com      $1@new.example.net     T

Я бы сделал это с Postfix и Cyrus-Imapd. Postfix просто пересылает все в cyrus-imapd, а затем вы можете использовать фильтр Sieve, чтобы:

  1. Переслать электронное письмо новому получателю
  2. Отправить уведомление отправителю

Я думаю, вы могли бы сделать это так:

if header :contains "to" "user@old_domain.com" {
        redirect "user@new_domain.com";
        reject "old_domain.com is not used anymore, please send your emails to new_domain.com";
}

Сложность заключается в том, что правила Sieve определены для каждого пользователя, поэтому вам нужно создать набор правил для каждого из ваших пользователей. Но вы можете легко написать сценарий.

Более подробную информацию о Сите в Cyrus-Imapd можно найти здесь: http://wiki.linuxwall.info/doku.php/en:ressources:astuces:sieve

Вы можете использовать procmail и postfix.

Я не уверен, возможно ли это с Google Apps, но то, что я сделал бы с "обычным" почтовым сервером, - это позволить ему обрабатывать почту и для старого домена, указывая MX для старого домена на новый сервер и затем настройте MTA соответствующим образом.

Postfix может сделать это легко (мы сделали что-то подобное в postfix около 7 лет назад, поэтому у меня больше нет доступа к очень простому фильтру, который мы написали).

Я бы рекомендовал использовать автоответчик (см. http://www.postfix.org/addon.html для нескольких примеров), чтобы сгенерировать автоответ, чтобы вы могли избежать всех ошибок в генераторе автоответа.

Затем простой фильтр (см. http://www.postfix.org/SMTPD_PROXY_README.html о том, как можно реализовать фильтр до очереди для изменения места назначения) для автоматической пересылки.