【问题标题】:Create a link between an email and my web-app?在电子邮件和我的网络应用程序之间创建链接?
【发布时间】:2009-05-04 20:25:17
【问题描述】:

我在 flickr 或 brightkite 之类的网站上看到,会向用户提供个人电子邮件。 如果用户向该地址发送邮件,则该内容将发布在他的公共个人资料中。 如何在 Web 应用程序上做到这一点?

【问题讨论】:

    标签: php web-applications


    【解决方案1】:

    在我看来,有两种方法可以做到这一点:

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

    或者,您可以编写一个 SMTP 实现,该实现将接受传入的电子邮件消息并执行您的自定义逻辑以将数据放入您的数据库/系统而不是邮箱。归根结底,这是一种更简洁的设计,并且开销要少得多。事实上,可能已经有一个 SMTP 服务器实现,允许您注入这种自定义逻辑(如果我能找到,我会编辑)。

    就个人而言,我会选择第二个选项。这将使您能够更好地控制系统中发生的事情,并且整体设计更简洁。

    祝你好运!

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

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

    【讨论】:

    • 我还添加了一个指向开源 php SMTP 服务器的链接,如果您对此感兴趣的话。
    【解决方案2】:
    【解决方案3】:

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

    【讨论】:

    • 你有名字吗?我对邮件服务器功能不是很熟悉:s
    【解决方案4】:

    Flickr 已在《构建可扩展网站》一书中发布了他们实现这一目标的方法。整个chapter 6 都致力于该主题。如上所述,您不需要非标准 MTA。默认的 MTA 可以正常工作(sendmail、qmail、postfix、exim 等)。您所要做的就是编辑/etc/aliases。 /etc/aliases 可用于设置邮箱以将所有电子邮件传递给脚本。

    我强烈推荐reading through this chapter,因为它继续概述了您在执行此操作时会遇到的许多常见问题——解析附件、处理来自移动设备的电子邮件(通常包括错误/古怪的标题) ,正确进行授权等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 2018-08-17
      • 2016-09-25
      • 1970-01-01
      • 2020-08-04
      • 2011-11-03
      • 2012-07-30
      相关资源
      最近更新 更多