电子邮件服务器接收来自域内任何帐户的电子邮件,最好是别名

Email server to receive email from any account within domain and ideally alias

我目前正在测试网络应用程序中的一些复杂功能,该应用程序涉及应用程序中的多个帐户;每个都有自己独特的电子邮件地址。我有几个用于此目的的临时 gmail 帐户,但为了重复使用电子邮件地址,我不得不将数据库中的电子邮件地址更新为某些帐户的其他地址。它很快变得混乱。

我的问题是;有没有一种方法可以在我的 VPS (Ubuntu 16.04) 上设置一个电子邮件服务器,它能够接受给定域中的所有电子邮件地址,而无需提前定义每个地址? IE;我希望能够边走边编电子邮件地址; test1@mydomain.com、test2@mydomain.com 等,并让服务器接收并存储任何传入的电子邮件到这些地址。电子邮件包括帐户验证、通知等,在我测试时,我需要知道在每个工作流程的每个点发送给每个参与者的内容。

理想情况下,我想要某种方式来查看域中的所有这些电子邮件,而不考虑地址。也许使用某种通配符设置别名,以便所有传入的电子邮件都发送到我可以在我的开发机器上的电子邮件客户端中配置的单个地址。

考虑将信封收件人 x@subdomain.example.net 重写为 handler+x@example.net

AFAIR sendmail、postfix 和 exim 支持此类重写。 AFAIR 所有三个都支持将 +detail 作为参数传递给 procmail 脚本(~handler/.procmailrc 作为 )。
警告:测试对多个特殊收件人的消息处理。

Post 如果您需要更多提示,您使用哪个特定的 SMTP/MTA 服务器。


Gmail 还支持加号地址 但是 您只能在给单个 special/plussed 收件人的邮件中获得有关原始收件人的可靠提示。

经过大量研究和尝试不同的配置后,我发现最适合我的解决方案是带有 Dovecot 的 PostFix。

我能够在 PostFix 中设置虚拟邮箱,virtual_mailbox_maps 指向包含此文件的文件; @mydomain.com mydomain.com/catchall/

这允许发往域内任何电子邮件地址的邮件转到同一个邮箱。 mydomain.com/catchall/ 是邮箱所在的服务器上的一个位置。按照惯例,域用于路径中。如果您在多个域上托管电子邮件,则很有用。 Dovecot 支持配置中的变量,允许您将其指向正确的邮箱。

我还发现 PostFix main.cf 文件必须包含 mydestination = localhost 才能使此配置生效。

以下帖子帮助我完成了这项工作 运行; https://www.digitalocean.com/community/tutorials/how-to-set-up-a-postfix-e-mail-server-with-dovecot https://www.digitalocean.com/community/tutorials/how-to-install-and-setup-postfix-on-ubuntu-14-04