【问题标题】:How can I configure Meteor to use Amazon SES when running on Heroku?在 Heroku 上运行时,如何配置 Meteor 以使用 Amazon SES?
【发布时间】:2014-07-09 16:46:16
【问题描述】:

我想使用 Meteor 提供的内置电子邮件方法,但我需要在 Heroku 上运行我的应用程序并使用 Amazon SES 的 smtp 端点来传输我的消息。

我正在使用 Meteorite 构建包和帐户密码包。

【问题讨论】:

标签: heroku smtp meteor amazon-ses


【解决方案1】:

按照以下说明使用亚马逊 ses 从 heroku 正确发送流星电子邮件

1) 通过 aws 控制台设置 smtp 访问,获取您的 smtp 凭据

2) 使用 javascript 控制台 (chrome dev tools / firebug) 运行

encodeURIComponent("SES_SMTP_USERNAME")

encodeURIComponent("SES_SMTP_PASSWORD")

对用户名/密码进行编码以在您的 smtp 网址中使用

3) 像这样使用生成的字符串来构建您的 smtp url

smtp://ENCODED_USER:ENCODED_PASS@SES_SMTP_URL:465

4) 设置 MAIL_URL 变量告诉流星使用这种方法发送电子邮件

heroku config:add MAIL_URL=YOUR_SMTP_URL

(不要用 qoutes 覆盖 url)

5) 在您的流星应用程序中将发件人设置为经过 SES 验证的发件人

Accounts.emailTemplates.from = "SENDER_NAME <SENDER_EMAIL>";


这将允许 Meteor 默认电子邮件方法正常运行。

【讨论】:

  • 我还制作了一个包,它使用 aws 凭据完成所有操作,包括来自 Email.send 的包
  • 我必须将协议更改为 smtps 才能正常工作
【解决方案2】:

除了您在要点中建议的内容之外,您还可以将 Meteor.http 方法与 SES API 一起使用并发送 POST/GET 请求。

完整的 API 文档http://docs.aws.amazon.com/ses/latest/DeveloperGuide/QueryInterface.Examples.html

当然这是手动解决方案,不会使用内置的流星邮件方法。但是可以通过Email.send = function(...重新定义邮件功能来纠正它

更新

你也可以在大气上使用 email-ses 包

mrt add email-ses

更多信息在这里:https://atmospherejs.com/package/email-ses

【讨论】:

  • true - 甚至可以使用像 npmjs.org/package/node-ses 这样的 npm 模块来避免手动与 API 交互 - 仍然不能完全给本机“它只是工作”的感觉,就像将 ses 设置为 smtp 服务器一样
  • + smtp 服务器解决了 dkim 问题
  • @Aaron 感谢提醒我,我确实更新了它,但 Meteor 仍处于测试阶段,尚未公开大气。我会尽力在明天之前解决它。对不起:(
  • @Akshat,哇,太棒了!您是否介意我以某种方式与您核对一下,或者您是否想用您的新包裹回答我的 SO 问题?另外,您的软件包是否会包含较新的 1.* 版本的 adris9/Nodemailer 和 andris9/nodemailer-ses-transport ?
  • @Aaron 我刚刚推出了一个版本,我需要处理文档并将其升级到 1.*,目前使用的是 mrt:nodemailer 包。我不太确定它使用什么版本,但我会在明天晚些时候更新tarang:email-ses 以使用最新版本。目前我已经制作了一个现在可以使用这个答案的,只是它的meteor add tarang:ses
猜你喜欢
  • 1970-01-01
  • 2017-05-25
  • 2014-05-09
  • 2013-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多