用于接收邮件的MTA,用PHP

时间:2011-05-02 19:15:05

标签: php email smtp mta

是否有库/ class / code-snippet / etc.这允许我直接在php中接收邮件?

因此,我不必在其他进程中运行其他服务器,然后必须以某种方式将邮件发送到已经运行的php进程。

我一直在寻找一段时间,但谷歌上的“php”和“mail”或“mta”/“smtp”的结果主要集中在发送邮件或使用pop3或imap检索它...... / p>

[编辑]

我正在尝试将消息转发到IRC频道,所以很明显当IRC-bot(在PHP中)没有运行时,丢失邮件并不是什么大问题。但是,在接收邮件和将其发布到IRC之间具有较低的延迟是。

5 个答案:

答案 0 :(得分:2)

我从未在PHP中看到过竞争对手的SMTP服务器,这并不让我感到惊讶。我认为你不想走那条路。我可以想到另外两种方法:

  1. 将procmail(或类似名称)与现有的SMTP服务器一起使用,并制定一条将邮件转发到PHP脚本的规则。这很简单,它会在收到消息的瞬间触发脚本。

  2. 将邮件传递到某个现有邮箱,然后让您的PHP脚本不断轮询它(通过POP或IMAP)以获取新邮件。当您看到新消息时,将其传递给IRC并将其删除。消息显示的时间取决于您对收件箱进行轮询的频率。

答案 1 :(得分:1)

编写自己的SMTP服务器是一项艰巨的任务。不要走这条路。你会浪费大量的时间来复制已经完成的工作。选择一个“大”SMTP服务器(postfix,exim,sendmail等)并继续使用它。

不要以为只是设置一个小小的脚本来听25端口就可以了。 SMTP服务器是非常复杂的野兽和设置端口25插槽的机制可能占用不到0.00000000000000000000000000000000001%的工作。 (这个数字是完全正确的,我问我的直觉是什么感觉,那就是出来的。)

答案 2 :(得分:1)

编写自己的SMTP服务器以充当MTA是一项艰巨的任务。你可以看看http://cloudmailin.com。 CloudMailin允许您作为HTTP Post接收传入的电子邮件,并充当MTA直接将电子邮件发送到您的PHP应用程序。然后,PHP应用程序可以处理电子邮件并将其发送到IRC频道。

答案 3 :(得分:0)

试试这个:http://www.php.net/manual/en/refs.remote.mail.php

谷歌搜索10秒。 SMTP用于邮件中继,虽然它是邮件客户端发送邮件的事实协议,因为每个运行SMTP邮件中继的盒子都有Unix传统。

POP3和IMAP为邮件客户端提供邮件访问权限。

答案 4 :(得分:0)

MTA(邮件传输代理)是一种应用程序(即sendmail,exim),用于将邮件从一个位置移动到另一个位置。据我所知,PHP中没有MTA编码。 PHP提供了处理邮件传输的类和脚本,但它仍然通过现有的MTA进行处理。

您应该能够配置MTA以通过给定的PHP脚本传递邮件,以完成您要查找的内容。