如何将通配符地址的邮件传递给特定的用户/别名/程序?

我需要configurationsendmail,以便为通配符地址传递的邮件被接受用于传递,然后传递给用户,别名或直接传递给脚本。

我可以用任何方式重写信封/标题,但是我不知道如何在RCPT TO中提供通配符地址:迄今为止,我尝试过的所有东西都有550个用户未知的错误。

所以这里有一个具体的例子:

我希望能够处理任何由一系列数字组成的地址,后面跟着一个点,后面跟一个单词,然后将其传递给脚本。 如果头文件被重写,没关系,但我需要信封来包含实际的Delivered-To地址。

这是我需要的那种SMTP会话:

220 blah.foo.com ESMTP server ready; Thu, 22 Apr 2010 20:41:08 -0700 (PDT) HELO blort.foo.com 250 blah.foo.com Hello blort.foo.com [10.1.2.3], pleased to meet you MAIL FROM: <[email protected]> 250 2.1.0 <[email protected]>... Sender ok RCPT TO: <[email protected]> 250 2.1.5 <[email protected]>... Recipient ok 

我尝试了一些与正则expression式的地图,但我从来没有超过550用户未知。

你应该像这样在/ etc / mail / virtusertable中添加一行:

@ yourdomain.com account_catch_all

然后makemap虚拟用户表,所有到该特定域的邮件将被转发到指定的用户。 然后你可以实现procmail根据你需要的任何过滤,或者编写你自己的脚本来parsing文件…

我通过使用virtusertable做了这样的事情。 不知道这是否正是你所需要的,但例如,如果你想接受整个域的stream量,并将它redirect到另一个域的单个地址,你可以在virtusertable文件中join类似这样的内容:

@ somedomain.com [email protected]

在某个域中接受任何地址的stream量,并将其redirect到其他域中的相同地址:

@ somedomain.com%1%[email protected]

为了完成你提到的模式匹配的其余部分,你需要使用正则expression式映射或者(我的首选)在事实之后用procmail来处理它。

虚拟域在O'Reilly'sendmail'书(“蝙蝠书”)的第4.8.51节中描述。

我希望这是有帮助的。