使用 Gmail SMTP 发送电子邮件 - Meteorjs
Sending email using Gmail SMTP - Meteorjs
您好,我正在尝试设置我的 gmail 帐户来为我的 Meteor 应用程序发送电子邮件,目前还不是很容易
server.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 上 运行 吗?
谢谢
但还是决定回答我自己的问题。
我没有也不能设置 C9 或我的测试站点环境变量,这就是原因。
糟糕的是cloud9不允许设置环境变量。也许您可以设置 Meteor.settings
对象而不是环境变量?
http://docs.meteor.com/#/full/meteor_settings
本质上,您可以在启动时使用 --settings 将 JSON 传递给流星。这些将仅在服务器端可用,除非包装在根的 "public" 对象下。
{
'public': {
'some-setting': 'some-value'
},
'other-setting': 'other-value'
}
这是一种不处理环境变量的变通方法。由于核心电子邮件包始终查看 MAIL_URL 环境变量,您可能需要通过另一个 service/provider.
发送电子邮件
Mandrill(由 Mailchimp 提供)有相当大的免费套餐,可让您发送交易电子邮件。您甚至可以在 mailchimp 中制作邮件模板,导出到 HTML,导入到 mandrill 并在您的 API 调用中传入合并变量。
更好的是,有一个非常棒的包可以写入 Mandrill API。 https://atmospherejs.com/wylio/mandrill
希望对您有所帮助!
埃利奥特
Meteor.startup(callback)
方法是在Meteor初始化结束时执行的,但是你是在启动前发送邮件,所以你应该在同一个块中发送,在process.env.MAIL_URL
之后..
你可以使用C9设置环境变量!当你 运行 meteor.
你就把它传进去
但是您不能在 c9 上使用 SMTP 发送电子邮件!
为了让我的生活更轻松,我只是不使用 Meteor 在 c9 上测试我的电子邮件。
如果我绝对需要绕过电子邮件功能并使用自定义电子邮件,而不是使用 MailGun REST API(不是 SMTP!!)发送
参见
您好,我正在尝试设置我的 gmail 帐户来为我的 Meteor 应用程序发送电子邮件,目前还不是很容易
server.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 上 运行 吗?
谢谢
但还是决定回答我自己的问题。
我没有也不能设置 C9 或我的测试站点环境变量,这就是原因。
糟糕的是cloud9不允许设置环境变量。也许您可以设置 Meteor.settings
对象而不是环境变量?
http://docs.meteor.com/#/full/meteor_settings
本质上,您可以在启动时使用 --settings 将 JSON 传递给流星。这些将仅在服务器端可用,除非包装在根的 "public" 对象下。
{
'public': {
'some-setting': 'some-value'
},
'other-setting': 'other-value'
}
这是一种不处理环境变量的变通方法。由于核心电子邮件包始终查看 MAIL_URL 环境变量,您可能需要通过另一个 service/provider.
发送电子邮件Mandrill(由 Mailchimp 提供)有相当大的免费套餐,可让您发送交易电子邮件。您甚至可以在 mailchimp 中制作邮件模板,导出到 HTML,导入到 mandrill 并在您的 API 调用中传入合并变量。
更好的是,有一个非常棒的包可以写入 Mandrill API。 https://atmospherejs.com/wylio/mandrill
希望对您有所帮助!
埃利奥特
Meteor.startup(callback)
方法是在Meteor初始化结束时执行的,但是你是在启动前发送邮件,所以你应该在同一个块中发送,在process.env.MAIL_URL
之后..
你可以使用C9设置环境变量!当你 运行 meteor.
你就把它传进去但是您不能在 c9 上使用 SMTP 发送电子邮件!
为了让我的生活更轻松,我只是不使用 Meteor 在 c9 上测试我的电子邮件。
如果我绝对需要绕过电子邮件功能并使用自定义电子邮件,而不是使用 MailGun REST API(不是 SMTP!!)发送
参见