嗨,我正在尝试设置我的 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/