【发布时间】:2011-06-14 22:17:27
【问题描述】:
我有一个在用户创建/修改记录时发送电子邮件的应用程序。我希望我的用户能够回复发送给他们的电子邮件,并让 Web 应用程序接收电子邮件、解析它并自动更新记录。我已经在 Basecamp 等网络应用程序中看到了这一点。电子邮件通常会显示“在此行上方回复”,如果您只是回复电子邮件,则无需登录 Web 应用程序即可更新您的工单/对话。
我该如何实现这种功能? (我不是在寻找特定的语言实现,而是与语言无关的解决方案)。
【问题讨论】:
我有一个在用户创建/修改记录时发送电子邮件的应用程序。我希望我的用户能够回复发送给他们的电子邮件,并让 Web 应用程序接收电子邮件、解析它并自动更新记录。我已经在 Basecamp 等网络应用程序中看到了这一点。电子邮件通常会显示“在此行上方回复”,如果您只是回复电子邮件,则无需登录 Web 应用程序即可更新您的工单/对话。
我该如何实现这种功能? (我不是在寻找特定的语言实现,而是与语言无关的解决方案)。
【问题讨论】:
有两种方法可以做到这一点:
您可以使用Procmail filter 将传入的电子邮件传送到您的脚本。这需要一些 'nix 专业知识来设置 - 但通过这种方法当然可以执行您所描述的操作。
使用像MailGun 这样的服务——他们会做所有艰苦的工作来设置和配置邮件服务器的东西,并通过一个很好的可编程Web API 向你公开。本周我一直在评估它以解决与您遇到的类似问题,我可以告诉您:它真的很酷,我强烈建议您自己检查一下。
【讨论】:
您需要实现一个服务/守护程序,用于轮询电子邮件收件箱中的新消息。要将传入电子邮件与相应数据相关联,您可以在传出电子邮件的主题中包含一个 id。
【讨论】:
我同意您应该创建一个系统来接收传入的电子邮件,但我不一定同意轮询它是正确的解决方案。看看我写的关于主题here 的博客文章。它与 Rails 相关,但这些概念应该适用于任何语言。这就是我们编写 CloudMailin 系统以提供更好的电子邮件接收方式的原因。
您还可以为每封电子邮件使用唯一的发件人地址,以防止用户更改主题行成为问题。电子邮件地址的一次性部分对此很有用。以回复+user123@example.com 为例。
【讨论】: