如何创建邮件服务器?

时间:2011-02-23 12:45:11

标签: php email webserver mail-server

我希望有一台能够接收电子邮件的服务器。然后我想用PHP来编写电子邮件显示给用户的方式。我可以纯粹用PHP做吗?我的意思是,从PHP发送电子邮件不是问题,但我不知道我是否可以通过PHP接收电子邮件? (在某种程度上PHP接收POST请求)。


ADDED

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

2 个答案:

答案 0 :(得分:5)

  

希望有一个能够接收电子邮件的服务器。

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

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

  

我想用PHP来编写向用户显示邮件的方式

接收邮件的服务器通常不会向用户显示它们。它们通常以标准方式(例如Maildir或mbox)存储它们,其他软件(例如本地电子邮件客户端或IMAP服务器)访问它们。

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

  

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

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

  

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

再次。请参阅邮件服务器的手册。大多数将为您提供有关数据存储位置和格式的选项。

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

答案 1 :(得分:2)

不,这不容易。 PHP是针对(无状态)http协议而制作的,而邮件是在通过各种请求和响应构建的会话中发送的。

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