在子域上为入站邮件设置的邮件服务器以触发 php 脚本

在子域上为入站邮件设置的邮件服务器以触发 php 脚本

我正在尝试设置我的公司服务器,以便能够接收发送到我们主域的子域上的某个帐户的电子邮件,即:[电子邮件保护]

这些传入的邮件程序应该触发一个处理某些内容的 php 脚本。

我正在运行 Ubuntu Server 20.0.4,安装了 Postfix,安装了 Dovecot,我也尝试使用 courier,但它也在那里,但我无法让它运行

我已经走到这一步了:

  • 我创建了一个 Linux 用户,并配置了 Postfix 以使用本地帐户作为有效邮箱
  • 我配置了 postfix 来接受 subdomain.domain.com 的来信
  • 我添加了子域名的 A 和 MX 记录,以便在 Google 域中正确路由
  • 我在子域上配置了 SSL(确认在 ssllabs 中以及通过 apache 导航到该子域时正常工作)
  • 我向 /etc/postfix/master.cf 添加了一些额外的配置来触发 php 脚本(现在只是一个测试脚本/占位符):
    smtp      inet  n       -       -       -       -       smtpd
        -o content_filter=myhook:dummy
    ...
    # PHP SCRIPT HOOK
        myhook unix - n n - - pipe
          flags=F user=www-data argv=/path/to/script/MailParser.php ${sender} ${size} ${recipient}   

MailParser.php 脚本只是触发写入日志文件的操作,内容为“已成功接收来信timestamp

如果我通过 smtper.net 使用这些设置发送邮件

它成功触发脚本写入日志,我可以在用户的​​系统邮件中看到来自 smtper.net 的“测试”消息,所以一切看起来都很好。

但是,如果我尝试通过普通电子邮件客户端(例如我的 Gmail 帐户)发送邮件,则会收到无法送达的退回错误:

550 5.1.1 您尝试联系的电子邮件帐户不存在。请再次检查收件人的电子邮件地址是否有拼写错误或不必要的空格。了解更多信息https://support.google.com/mail/?p=NoSuchUserf16si1842833plj.1 - gsmtp

我被困在这一点上了。

答案1

正如 @anx 指出的那样,问题出在 MX 记录上。此外,域上的 SSL 证书未完全配置,因此也导致了问题。否则,我的本地服务器配置设置正确。

相关内容