2011-02-23 45 views
1

我想有一台能够接收电子邮件的服务器。比我想用PHP编写电子邮件显示给用户的方式。我可以纯粹使用PHP吗?我想,从PHP发送邮件不是问题,但我不知道我是否可以通过PHP接收邮件? (以某种方式PHP接收POST请求)。如何创建邮件服务器?

ADDED

至于第一个答案的回应,我想说明,它看起来像我需要的SMTP服务器。我希望能够以编程方式与SMTP服务器通信。例如,我想有可能“告诉”SMTP服务器创建新的电子邮件地址。我还需要知道传入邮件的存储位置和格式。例如,我如何从与收到的邮件相对应的文件中提取“发件人”,“cc”,“bcc”。

+0

一般来说,PHP不会直接处理POST请求。网络服务器(如Apache)将收到POST请求,然后执行PHP程序并通过标准输入和环境将请求中的数据传递给它。 – Quentin 2011-02-23 12:56:08

回答

4

想要一台能够接收电子邮件的服务器。

如果您是从头开始编写,那么您将需要the specification for SMTP。我会非常强烈地反对这一点。 SMTP服务器很难写,而且有几个非常好的开源解决方案。

我对PHP的理解是它在多线程方面做得很差,所以它可能不是一个很好的解决方案。

比我想用PHP来的邮件显示给用户

接收邮件通常不拿给用户服务器的方式进行编程。他们通常以其他软件(如本地电子邮件客户端或IMAP服务器)访问的标准方式(如Maildir或mbox)存储它们。

向用户显示电子邮件的工作属于电子邮件客户端。基于Web的PHP网络邮件软件包括SquirrelMail和RoundCube。 AFAIK他们都充当IMAP客户端。请参阅IMAP specification

作为对第一个答案的回应,我想指定它看起来像我需要一个SMTP服务器。我希望能够以编程方式与SMTP服务器通信。例如,我想有可能“告诉”SMTP服务器创建新的电子邮件地址。

选择一个在您的操作系统上运行的SMTP服务器。阅读说明以了解如何配置交付地址和接受的地址。它通常归结为操纵文本文件。

我还需要知道传入邮件的存储位置和格式。例如,我如何从与收到的邮件相对应的文件中提取“发件人”,“cc”,“bcc”。

再次。请参阅邮件服务器的手册。大多数人会给你选择存储数据的位置和格式。

然后你只需要决定是否要让PHP直接挖掘这些人,或者在两者之间使用IMAP服务器。

2

不,这是不容易的。PHP是用于(无状态)http协议的,而邮件是根据各种请求和响应构建的对话发送的。

可以使用PHP解析和处理邮件,但我会建议安装一个可以使用POP3从PHP读取的邮箱。然后,您的PHP应用程序可以显示并处理来自该邮箱的邮件。