2011-05-02 65 views
0

是否有库/类/代码片段/等。允许我直接在PHP中接收邮件?用于接收邮件的MTA,用PHP

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

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

[编辑]

我想要做的就是转发消息给IRC通道,所以很明显,当IRC-BOT(在PHP)未运行,丢失的邮件是不是大不了。然而,在接收邮件并将其发布到IRC之间的延迟是低的。

回答

1

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

+0

不幸的是,像这样的东西并不存在作为软件安装在您自己的机器上。但是,谢谢! – Dexter 2011-05-07 16:13:18

0

试试这个:谷歌搜索http://www.php.net/manual/en/refs.remote.mail.php

10秒。 SMTP是用于邮件中继的,尽管它是邮件客户端发送邮件的事实协议,这是由于每个运行SMTP邮件中继的盒子的Unix传统。

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

+0

这是与现有的MTA交互的东西......它不是一个替代品。 – 2011-05-02 19:27:40

+0

这就是SMTP指定的内容:如何与其他STMP服务器交互。 – 2011-05-02 19:28:55

+0

这里没有任何东西可以接收邮件。 – Dexter 2011-05-02 20:14:59

0

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

您应该能够配置MTA以通过给定的PHP脚本传递邮件来完成您正在寻找的内容。

2

我从来没有在PHP中见过竞争的SMTP服务器,它并没有让我感到意外。我认为你不想走那条路。我能想到的另外两种方式来做到这一点:

  1. 使用的procmail(或相似)与您现有的SMTP服务器,使这些消息转发给您的PHP脚本的规则。很简单,它会在收到消息的瞬间触发脚本。

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

+0

用于procmail。如果您正在使用现有的电子邮件帐户,fetchmail> procmail> PHP是一个简单而有效的流程。 – Schwartzie 2011-05-02 20:20:11

1

编写自己的SMTP服务器是一项艰巨的任务。不要走这条路。你会浪费大量的时间来复制已经完成的工作。选择一个'大'的SMTP服务器(postfix,exim,sendmail等),然后去做。

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

+0

选择其中一个大型服务器也是很多工作。特别是当你需要弄清楚如何配置它们来做非标准的东西时,比如发送邮件到一个php脚本。我认为有一个简单的脚本监听端口25不会那么糟糕... – Dexter 2011-05-02 20:17:49

+0

将邮件发送到PHP脚本与创建用户一样简单,并将.forward放入该用户的主目录以将邮件传送到脚本。所有主要的SMTP服务器都直接支持。 – 2011-05-02 21:30:43