meteor - 使用 Gmail SMTP 发送电子邮件 - Meteorjs

标签 meteor cloud9-ide

嗨,我正在尝试设置我的 gmail 帐户来为我的 Meteor 应用程序发送电子邮件,到目前为止还不是很容易

服务器.js

Meteor.startup(function () {
  smtp = {
    username: 'xxxxx',   // eg: server@gentlenode.com
    password: 'YYYYYYYY',   // eg: 3eeP1gtizk5eziohfervU
    server:   'smtp.gmail.com',  // eg: mail.gandi.net
    port: 465
  }

  process.env.MAIL_URL = 'smtp://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.server) + ':' + smtp.port;
});

Email.send({
  from: "meteor.email.2014@gmail.com",
  to: "xxxx@gmail.com",
  subject: "Meteor Can Send Emails via Gmail",
  text: "Its pretty easy to send emails via gmail."
});

并且测试电子邮件永远不会发送以下错误代码,说明我没有设置环境变量。
I20150715-18:14:02.641(0)? ====== BEGIN MAIL #0 ======
I20150715-18:14:02.642(0)? (Mail not sent; to enable sending, set the MAIL_URL environment variable.)
I20150715-18:14:02.643(0)? MIME-Version: 1.0
I20150715-18:14:02.643(0)? From: meteor.email.2014@gmail.com
I20150715-18:14:02.643(0)? To: xxxx@gmail.com
I20150715-18:14:02.643(0)? Subject: Meteor Can Send Emails via Gmail
I20150715-18:14:02.643(0)? Content-Type: text/plain; charset=utf-8
I20150715-18:14:02.643(0)? Content-Transfer-Encoding: quoted-printable
I20150715-18:14:02.644(0)? 
I20150715-18:14:02.644(0)? Its pretty easy to send emails via gmail.
I20150715-18:14:02.645(0)? ====== END MAIL #0 ======

这可能是因为我在 C9 上运行它吗?

谢谢

最佳答案

糟透了 cloud9 不允许设置环境变量。也许你可以设置Meteor.settings对象而不是环境变量?

http://docs.meteor.com/#/full/meteor_settings

本质上,您可以在使用 --settings 启动它时将 JSON 传递给 meteor 。这些将仅在服务器端可用,除非包装在根的“公共(public)”对象下。

{
  'public': {
     'some-setting': 'some-value'
  },
  'other-setting': 'other-value'
}

这是处理无环境变量的一种解决方法。由于核心电子邮件包始终查看 MAIL_URL 环境变量,因此您可能需要通过另一个服务/提供商发送电子邮件。

Mandrill (由 Mailchimp 提供)有相当大的免费套餐,允许您发送交易电子邮件。您甚至可以在 mailchimp 中制作邮件模板、导出到 HTML、导入到 mandrill 并在 API 调用中传入合并变量。

更好的是,有一个用于写入 Mandrill API 的 kick-ass 包。 https://atmospherejs.com/wylio/mandrill

希望有帮助!

艾略特

关于meteor - 使用 Gmail SMTP 发送电子邮件 - Meteorjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31438118/

相关文章:

javascript - Meteor 有全局渲染函数吗?

meteor - 使用 Meteor 进行 A/B 测试

meteor - 如何在 meteor 包中指定本地 npm 模块

javascript - Meteor JS 中的排序

google-app-engine - 如何打开本地主机 :8080 in Cloud9 IDE?

mongodb - 将 pymongo 配置为使用字符串 _id 而不是 ObjectId

maven - 在 Cloud9 Docker 容器中运行 Maven

mysql - 如何从 Cloud9 IDE 中的 Rails 应用程序下载 MySQL 数据库

node.js - Cloud 9 ide 中的跨源 Node js

node.js - 我可以在strongloop中使用NodeMailer发送电子邮件吗?