0

是否有库/类/代码片段/等。这允许我直接在php中接收邮件?

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

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

[编辑]

我想要做的是将消息转发到 IRC 频道,所以很明显,当 IRC 机器人(在 PHP 中)没有运行时,丢失邮件并不是什么大问题。然而,在接收邮件和在 IRC 上发布邮件之间的延迟很短。

4

5 回答 5

2

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

  1. 将 procmail(或类似的)与您现有的 SMTP 服务器一起使用,并制定将消息转发到您的 PHP 脚本的规则。做起来很简单,它会在收到消息的那一刻触发脚本。

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

于 2011-05-02T19:25:24.690 回答
1

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

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

于 2011-05-02T19:24:50.790 回答
1

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

不要认为仅仅设置一个极小的脚本来监听端口 25 就可以了。SMTP 服务器是极其复杂的野兽,设置端口 25 套接字的机制可能只占不到 0.00000000000000000000000000000000001% 的工作量。(这个数字完全正确,我问我的直觉是什么感觉,结果就是这样)。

于 2011-05-02T19:32:42.783 回答
1

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

于 2011-05-03T07:10:49.020 回答
0

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

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

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

于 2011-05-02T19:20:45.697 回答