【问题标题】:Automatically redirect email with new FROM/TO fields使用新的 FROM/TO 字段自动重定向电子邮件
【发布时间】:2015-07-13 15:24:29
【问题描述】:

我收到来自分包商的电子邮件。我需要从我的公司电子邮件地址自动将这些电子邮件的内容重新发送到分发列表。我们目前使用 Outlook Exchange 作为我们的主要邮件服务器,但我愿意(实际上更喜欢)使用 Linux 来解析/重定向。我不太关心清理标题,只是更新 FROM/SENDER 和 TO/RECIPIENT 字段。可能还有附件需要随身携带。

我在 SuperUser 上看到过类似的帖子here,其中一个答案中引用了“procmail”,但含糊不清。

到目前为止,我最好的方法是在 Linux 上设置一个邮件客户端以获取 Outlook 流量,然后使用 procmail 进行解析并重新发送。有没有人见过这样的例子?有更好的主意吗?

谢谢。

【问题讨论】:

    标签: email sendmail outlook-2010 procmail


    【解决方案1】:

    这不是 Procmail 的工作方式。 Procmail 是一个自治代理,通常在您的邮件服务器上运行,并在收到的每封邮件到达时对其进行处理。

    您请求的转发功能不是 Procmail 本身的一部分,但 Procmail 分发带有一个实用程序formail,它可以为您重写标题。

    给定标准输入上的消息,它可以将“From:”和“To:”标头替换为新值,如下所示:

    formail -I"From: Important Account <corporation@example.com>" \
     -I"To: Little Peon <person@example.org>" -ICc:
    

    (空的-ICc: 确保删除任何Cc: 标头(如果有)。您可能还想删除旧的Received: 标头。)

    然后可以将输出通过管道传输到例如sendmail -oi -t 将其提交回邮件流。

    当然,如果您希望它在电子邮件到达时自动发生,这也很容易放入 Procmail 配方中。这实际上是 Procmail 处理的普通运行,因此您应该能够找到大量示例,包括在 Procmail 手册中。但这里有长有短;

    :0c
    * regex which matches the messages you want to forward
    | formail -I"From: account@example.com" -I"To: person@example.org" -ICc: \
      | $SENDMAIL $SENDMAILFLAGS -t
    

    如果您不想在收件箱中收到原件,请删除 c 标志。如果要无条件转发所有邮件,请删除条件。

    【讨论】:

    • 谢谢,三人组。我不是管理员,所以我缺少的是交换服务器和 linux 邮件服务器之间的交互。这些如何整合?还是必须独立?
    • 如果没有关于您的电子邮件拓扑的更多信息,就没有直接的方法来回答这个问题。如果您在 Linux 服务器上收到这些消息,那么您只需要在您的主目录中添加一个 .procmailrc。如果不是,也许您需要解释两个邮件服务器之间的关系,也许在一个单独的问题中,也许在不同的站点上(superuser.comserverfault.com 取决于您是否需要一般帮助或专门的服务器网络帮助)。
    • 如果您可以通过 IMAP 访问您的 Exchange 收件箱,或许可以忘记 Procmail,而使用简单的自定义 IMAP 客户端即可。如果你坚持使用 Procmail,我会指向 github.com/tripleee/procimap,但对于这个简单的问题,它可能太多了,特别是如果你是 Procmail 的新手。
    • 正确。我想我有足够的弹药继续前进。格拉西亚斯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2011-04-15
    • 2018-07-26
    • 2017-06-07
    • 1970-01-01
    • 2011-08-18
    相关资源
    最近更新 更多