如何在SMTP中继服务器上嵌入php代码

时间:2017-04-11 21:21:32

标签: php email smtp phpmailer exim

我需要开发一个带跟踪系统的SMTP中继服务,我已经有了一个电子邮件营销系统,当用户在我的界面中创建电子邮件时,很容易跟踪交付,退回和点击,并且消息来自我的服务器,所以我可以跟踪来自exim db的消息,并在发送之前捕获消息ID,因为我在PHPmailer函数上创建了消息ID。

但是,SMTP中继服务的工作方式有所不同,我向用户提供了一个电子邮件帐户和密码,他在CMS或网站上使用此凭据使用我的服务器发送邮件。

我一直在研究如何在SMTP连接上嵌入PHP代码,但没有成功,就像在这个流程中一样

  1. CMS或网站登录smtp.anydomainxxyy.com发送电子邮件
  2. 在发送过程中,我需要捕获邮件ID,发件人电子邮件,在某处添加标签以便进一步跟踪并将其写入数据库。我还会跟踪发送的邮件数量
    1. 另外,在发送过程中,我需要检查是否有留言要发送,如果没有留言,则拒绝发送。
    2. 如果有可用消息,请继续发送。
    3. 稍后使用捕获的消息ID,我会检查exim数据库的交付状态。
  3. 如果SMTP服务可以像登录网站系统那样工作,我可以轻松地做到这一点,但是,我甚至不知道如何进行SMTP凭据检查,而且我不确定我是否可以模拟虚拟SMTP服务器,以便我的用户可以连接到我的脚本,如果满足条件,我的脚本将它们连接到最终的SMTP服务器,如下所示:

    1. 用户连接到dummysmtp.domainxxyy.com(连接所以脚本让我们说“smtp.php”)
    2. 脚本smtp.php验证凭据,向mailcounter添加1条消息,如果消息可用则计数,如果是,则连接到smtp.domainxxyy.com(最终邮件服务器)并发送电子邮件。
    3. 我真的很感激任何帮助,我只需要了解如何使用php自定义我的exim服务器或创建我自己的虚拟smtp服务器,这样我就可以构建这个跟踪系统,非常感谢

1 个答案:

答案 0 :(得分:0)

大多数邮件服务器允许您将入站邮件传输到外部脚本,该脚本可以使用任何语言编写。我之前使用过PHP,尽管lua可能是这种情况下的最佳选择。也就是说,你所描述的内容听起来就像postfix对传输地图的作用,即如果你在文档中进行一些挖掘,这种功能可能已经内置到你的邮件服务器中。

或者,查看一个本机可编写脚本的邮件服务器,例如Haraka,它是用Javascript编写的。您可以在任何方向上在SMTP管道中的任何位置执行各种奇怪的操作,并且性能也非常好。