在电子邮件和我的网络应用之间创建链接?

时间:2009-05-04 20:25:17

标签: php web-applications

我在网站上看过像flickr或brightkite,向用户提供了个人电子邮件。 如果用户向此地址邮寄某些内容,则该内容将发布在其公开个人资料中。 如何在Web应用程序上执行此操作?

4 个答案:

答案 0 :(得分:4)

我认为有两种方法可以做到这一点:

首先,您可以使用现有的SMTP服务器/电子邮箱系统,并在一定时间间隔内使用POP3或IMAP从该邮箱中提取邮件,以便将内容插入数据库/系统。

或者,您可以编写SMTP实现,该实现将接受进入的电子邮件并执行自定义逻辑,以将数据放入数据库/系统而不是邮箱。这最终是一种更清洁的设计,其开销更小。事实上,可能有一个SMTP服务器实现已经存在,这将允许您注入这种自定义逻辑(如果我能找到一个,我将编辑)。

就个人而言,我会选择第二种选择。这将使您更好地控制系统中正在发生的事情,并且它将具有整体清洁设计。

祝你好运!

编辑:这不是PHP,但Apache的JAMES是一个Java邮件服务器,允许您注入自定义邮件处理单元(称为mailets)来处理邮件处理。您可以编写这样的mailet来处理电子邮件并将更新放在数据库而不是邮箱中。可能还有其他项目实现了这种设计,所以值得一看。

再次编辑: Ooo ...这是SourceForge上的一个开源php SMTP server。我不知道你可以注入自定义逻辑,但是你总是可以编辑源代码并让它做你想做的事情! (如果你还坚持使用PHP)

答案 1 :(得分:1)

答案 2 :(得分:1)

有几种可用的免费邮件服务器支持使用MySQL或任何其他数据库作为存储后端,并且只需配置即可。如果您不习惯自定义现有邮件服务器或编写自己的邮件服务器,我会选择该解决方案。它比使用POP3或IMAP与邮件服务器通信快几个数量级。

答案 3 :(得分:0)

Flickr在“构建可扩展网站”一书中发表了他们的方法。整个chapter 6专门讨论这个话题。如上所述,您不需要非标准MTA。默认的MTA将正常工作(sendmail,qmail,postfix,exim等)。您所要做的就是编辑/ etc / aliases。 / etc / aliases可用于设置邮箱以将所有电子邮件传递给脚本。

我强烈推荐reading through this chapter,因为它继续概述了你将要做的很多常见问题 - 解析附件,处理来自移动设备的电子邮件(通常包括坏/古怪)标题),正确授权等等。