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

Перенаправление электронного письма с подстановочными знаками на одно письмо с постфиксом

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

Однако когда электронное письмо отправляется пользователю, содержащее предыдущее сообщение, Reply-To поле содержит такой адрес notification-message-988742@mysite.com (который содержит идентификатор в конце).

Если пользователь ответит, ответное сообщение будет отправлено обратно на notification-message-988742@mysite.com который, конечно, не имеет собственного почтового ящика, кроме notification@mysite.com.

Как перенаправить все входящие сообщения, исходящие от определенного подстановочного знака notification-message-*@mysite.com к notification@mysite.com? Я провел небольшое исследование, но ни одна прочная часть не работала, включая luser_relay = notification@mysite.com и положив notification-message-* в таблице постфиксных псевдонимов notification@ есть Maildir, поэтому почта будет входить в него.

Принципиальная схема:

Я использую Ubuntu 11.04.

Как уже сказал mschuett, вы можете использовать регулярное выражение

Сначала проверьте, поддерживает ли постфикс регулярное выражение:

root @ mail / # postconf-m | grep regexp
regexp
root @ mail / #

Создайте файл / etc / postfix / aliases-regexp и добавьте в него свое регулярное выражение

root @ mail / # cat /etc/postfix/aliases-regexp
/notification-message-[0-9]+@example\.net/ notification@example.net
root @ mail / #

Запустите postmap и проверьте, работает ли он:

root @ mail / # postmap /etc/postfix/aliases-regexp
root @ mail / # postmap -q notification-message-123123@example.net regexp:/etc/postfix/aliases-regexp
notification@example.net
root @ mail / #

Если все в порядке, добавьте этот файл в базу псевдонимов.

Пример:

root @ mail / # cat /etc/postfix/main.cf | grep ^alias_maps
alias_maps = hash:/etc/aliases regexp:/etc/postfix/aliases-regexp
root @ mail / #

Если вы используете виртуальные домены, добавьте этот файл в свой virtual_alias_maps

Пример:

root @ mail / # cat /etc/postfix/main.cf | grep ^virtual_alias_maps
virtual_alias_maps = mysql:/etc/postfix/mysql/alias.conf regexp:/etc/postfix/aliases-regexp
root @ mail / #

Не забудьте перезапустить postfix.

Удачи!

Карты псевдонимов (виртуальный, местный, ...) будет работать в сочетании с regexp_table формат. Но если вы скомпилировали в PCRE, вы также можете использовать формат pcre_table.

В противном случае вам следует искать "Postfix catch-all", что немного более жадно.

Я был бы склонен решить эту проблему, используя recipient_delimiter.

Если вы не против использовать немного другой Reply-To адреса, вы можете установить:

recipient_delimiter = +

в вашей конфигурации, а затем напишите, например, notification+message-988742@mysite.com (Обратите внимание +) будет доставлен в notification пользователь (при условии, что нет более конкретных правил / пользователей, соответствующих notification+message-988742).

Вы мог попробуйте установить recipient_delimiter = - (чтобы вы могли использовать Reply-To заголовки, как они есть в вопросе), но я не уверен, как это будет работать с несколькими экземплярами разделителя в левой части, и у меня нет Postfix для проверки.

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