Как я могу заставить postfix пересылать входящее электронное письмо на один или несколько разных локальных псевдонимов, если адрес, на котором будет основано правило, не является получателем? Адрес, по которому я хочу действовать, получен из пересылаемого письма.
Это выглядит так:
На внешнем счете:
123+voicemail@externaldomain
доставляется в главный myname@externaldomain
учетная запись. (это объединяет обычную текстовую почту и почту с голосовыми вложениями) tonline@mydomain
На локальном постфиксном сервере:
Теперь я хочу пересылать только голосовую почту, изначально адресованную 123+voicemail@externaldomain
на мои псевдонимы для voice@mydomain
и voice@myotherdomain
Вот почему я не могу просто использовать bcc_maps
В virtual_alias_maps
Я попытался:
С помощью virtual_alias_maps
Я могу перенаправить
voice@mydomain to myvoice@mydomain, myvoice@myotherdomain
но это также касается и обычной почты.
Поэтому я попробовал такое правило, как
123+voice@externaldomain voice@mydomain, voice@myotherdomain
но это не срабатывает.
пример письма, когда я наконец получил его, используя правило с моей первой попытки:
Return-Path: <123@externaldomain>
X-Original-To: voice@mydomain
Delivered-To: myvoice@mydomain
From: 456 <456@externaldomain>
To: 123+voice@externaldomain
Subject: Call from 456
Мне удалось решить эту проблему, используя фильтр сообщений сита:
require ["copy","fileinto","imap4flags"];
# rule:[VoiceMailForwarder]
if anyof (header :contains "to" "+Sprachbox@t-online.de", header
:contains "to" "fritzbox@example.com")
{
redirect :copy "voicemail@example.com";
}
использование roundcube с плагином managesieve упрощает эту задачу. Также есть аддон для thunderbird
Поскольку ваше решение полностью зависит от To
заголовок, вы можете добавить header_checks
#/etc/postfix/main.cf
# ...
# ...
header_checks = regexp:/etc/postfix/header.re
# ...
#/etc/postfix/header.re
/^To:(.*)123+voice@externaldomain/ REDIRECT whoever@whateverdomain.tld