从文档(http://docs.meteor.com/#email)来看,似乎发送电子邮件与Meteor相当直接。只需添加包,然后在MAIL_URL中指定第三方电子邮件提供商的凭据。
目前,我正在尝试开发接收电子邮件的功能。我们需要此功能来取消订阅我们系统中的用户或允许用户仅通过回复他们的电子邮件来输入数据。
我只是想知道,这样做的最佳方式是什么?是否有可能从我的Meteor解决方案中接收和解析电子邮件,或者我是否需要设置一些单独的解决方案来执行此操作?
如果有帮助,我正在使用azure VM(在ubuntu中)运行流星网站,而我们的第三方提供商是SendGrid。
答案 0 :(得分:3)
我也是SendGrid的传播者。以下是使用Meteor中的解析webhook接收入站电子邮件的过程:
设置Meteorite流星包管理器。安装程序:https://github.com/oortcloud/meteorite
在命令行中运行mrt add router
。
接下来修改您的javascript以添加路线:
Meteor.Router.add({'/ inbound':function(){
post = this.request.body;
subject = post.subject;
body = post.body;
返回[200,“成功”]}});
您可以在此处查看接收入站电子邮件的实际示例:http://hook.meteor.com,此处的源代码可在此处获取:https://github.com/kunal732/sgmeteor
以下是我就此主题撰写的博文,以供更多参考,http://sendgrid.com/blog/receive-inbound-email-meteorjs/
答案 1 :(得分:2)
您首先需要设置您的计算机(或其他计算机)才能真正接收电子邮件。这本身就是一项任务,并不是非常简单,并且还涉及在您的名称服务器上设置MX记录。这需要一些阅读。这可能是一个入门的地方: https://help.ubuntu.com/12.04/installation-guide/i386/mail-setup.html
一旦你能够向服务器发送电子邮件,你可以使用这样的东西来检索到节点/流星的电子邮件: https://github.com/mscdex/node-imap https://atmosphere.meteor.com/package/meteor-node-imap
如果你想让node.js本身运行一个smtp服务器来接收邮件,你可能想看看这样的东西: https://npmjs.org/package/simplesmtp
答案 2 :(得分:2)
如果您想接收电子邮件,您有两个主要选择:
第一个选项
首先是设置电子邮件服务器以接收电子邮件,存储该电子邮件并访问它。我建议Haraka执行此操作。您可以将其安装在服务器上,运行它,然后添加一个插件,如haraka-couchdb或haraka-redis,以将电子邮件存储到数据库中。然后,您可以简单地查询该数据库并将电子邮件内容拉出。然后你只需要解析它。 (我发现这种方法比使用IMAP支持设置postfix更容易并保持运行)
第二个选项
第二个选项是使用SendGrid的Parse Webhook(因为您已经是我们的客户 - 免责声明:我是SendGrid的开发人员传播者)。这里有一个初学者指南:
http://sendgrid.com/blog/parse-webhook-tutorial/
这里有一个示例应用程序: