- 论坛徽章:
- 1
|
首先,你要有一個表知道那些人要 forward/rewriting 給誰 (aliases,forward...),所以可能是像
AAA: sale1
BBB: sale2
CCC: sale1
DDD:sale1
FFF: sale2
.... : ....
所以,在信進來時 rewriting (sendmail 叫 virusertable, postfix 不知叫什麼,其他的有沒有我就不知道了)
(也可以用 forward 的觀念),下屬回出去的信這個 Mail Header 中的 From 就需要改變 (Envelope From 不
需變),用 Milter 的 header_change api, 像 mimedefange 中的
action_change_header($hdr, $val, $index):
- # 我用 mimedefang 來假設做法,而這個語法是 perl 的語法
- my($entity) = @_;
- # 取得信件的 From,這個 From 可能含 display name , 所以重點是要取出 XXX <username@domain> 中的 username
- my $fromhdr = $entity->head->get('From');
-
- # 取得信件的 To , 我不知道你要不要記錄來信時的 From 和回信時的 To
- my $tohdr = $entity->head->get('To');
- while ( MAPPING_TABLE) {
- ~ m/(.*)\s+:\s+(.*)\s+/;
- $mapping{$1}=$2
- }
- ## ..中間略 ###
- action_change_header("From",$mapping{$fromhdr});
- ...
- # 其他略
复制代码
我只是提供一個思路,我也提到這重點是流程,而像您所想的問題 (Change From),在不支援 Milter 的 MTA 上
你幾乎不可能實現,所以我才會說大概只有 sendmail,postfix 做得到,而且非常容易(弄清 work flow 是不容易的) |
|