将电子邮件传送至脚本,但仅针对单个用户

将电子邮件传送至脚本,但仅针对单个用户

我在 Ubuntu 上运行一个邮件服务器,使用 Postfix、Amavisd 和 MySQL 的虚拟用户。我希望在收到邮件后通过外部脚本传输电子邮件正文,但只针对一个特定的电子邮件收件人。我开始这样做的方式是在 master.cf 中创建一个名为“vtimer”的新传输:

vtimer    unix  -       n       n       -       -       pipe
  flags=Fq   user=vmail       argv=/opt/vacationtimer.php ${recipient}

然后我在传输文件中创建了一个新条目:

[email protected] vtimer

最后,我运行了postmap传输文件并重新启动了 Postfix(main.cf 中的条目已经存在,因为我目前有其他功能传输)。此传输与其他传输之间的区别在于,其他传输匹配主机名,但这是唯一匹配特定地址的传输。当在此地址收到电子邮件时,它不会通过此传输重定向,而是通过当没有匹配时使用的默认传输。

这是正确的做法吗?如果是,我遗漏了什么?如果不是,我应该考虑哪些其他选择?

答案1

我怀疑您遇到的问题是传输表中命令的语法。

[email protected] vtimer:

请注意,行尾的“:”用于建议使用传输方式,但您的示例中缺少该符号。

我处理类似要求的方式是在 /etc/aliases 中使用管道设置用户到脚本 -

用户名:“| 将电子邮件输入到管道的命令”

我设置了一个 virtual_alias_maps 条目,然后在 main.cf 文件中使用以下行设置传输图

[电子邮件保护] 当地的:

因此该用户被视为本地系统用户。

我认为这比在 master.cf 文件中创建条目更容易、更灵活。

相关内容