为什么我的Meteor应用程序和帐户包没有发送验证电子邮件?

为什么我的Meteor应用程序和帐户包没有发送验证电子邮件?,meteor,user-accounts,meteorite,email-verification,Meteor,User Accounts,Meteorite,Email Verification,我正在制作一个meteor应用程序,我添加了mrt帐户密码包以及mrt帐户ui引导下拉列表 我添加了loginbuttons,这样用户就可以创建一个帐户,而且效果很好。我使用所有默认值 在服务器上,我有以下代码: Accounts.config({ sendVerificationEmail: true, forbidClientAccountCreation: false }); 创建新帐户时,服务器控制台会打印: I20130821-18:31:42.105(-4)? ======

我正在制作一个meteor应用程序,我添加了mrt帐户密码包以及mrt帐户ui引导下拉列表

我添加了loginbuttons,这样用户就可以创建一个帐户,而且效果很好。我使用所有默认值

在服务器上,我有以下代码:

Accounts.config({
  sendVerificationEmail: true,
  forbidClientAccountCreation: false
});
创建新帐户时,服务器控制台会打印:

I20130821-18:31:42.105(-4)? ====== BEGIN MAIL #0 ======
I20130821-18:31:42.106(-4)? MIME-Version: 1.0
I20130821-18:31:42.107(-4)? From: "Meteor Accounts" <no-reply@meteor.com>
I20130821-18:31:42.108(-4)? To: hidden@hidden.edu
I20130821-18:31:42.108(-4)? Subject: How to verify email address on localhost:3000
I20130821-18:31:42.109(-4)? Content-Type: text/plain; charset=utf-8
I20130821-18:31:42.109(-4)? Content-Transfer-Encoding: quoted-printable
I20130821-18:31:42.109(-4)? Hello,
I20130821-18:31:42.110(-4)? To verify your account email, simply click the link below.
I20130821-18:31:42.110(-4)? http://localhost:3000/#/verify-email/C2vJeaDLeMkkWmcRY
I20130821-18:31:42.111(-4)? Thanks.
I20130821-18:31:42.111(-4)? ====== END MAIL #0 ======
I20130821-18:31:42.105(-4)?====开始邮件#0======
I20130821-18:31:42.106(-4)?MIME版本:1.0
I20130821-18:31:42.107(-4)?来自:“流星帐户”
I20130821-18:31:42.108(-4)?致:hidden@hidden.edu
I20130821-18:31:42.108(-4)?主题:如何验证本地主机上的电子邮件地址:3000
I20130821-18:31:42.109(-4)?内容类型:文本/纯文本;字符集=utf-8
I20130821-18:31:42.109(-4)?内容传输编码:引用可打印
I20130821-18:31:42.109(-4)?你好
I20130821-18:31:42.110(-4)?要验证您的帐户电子邮件,只需单击下面的链接。
I20130821-18:31:42.110(-4)?http://localhost:3000/#/verify-电子邮件/c2vjeadlemkwmcry
I20130821-18:31:42.111(-4)?谢谢
I20130821-18:31:42.111(-4)?====结束邮件#0======
因此,它看起来像是从服务器发送电子邮件,但我的收件箱中从未收到验证电子邮件。我试了好几次,已经一个多小时了!我还检查了我的垃圾邮件文件夹。有什么好处

提前感谢

请参见此处:

如果未设置MAIL_URL(例如,在本地运行应用程序时),则Email.send会将消息输出到标准输出


像Meteor这样的Web服务器不能自己发送电子邮件,它们需要一个SMTP服务器来实现这一点。您需要设置一个并使用
邮件URL
变量进行设置。

要配置
邮件URL
,请不要忘记添加核心电子邮件包:

meteor add email
然后,服务器端:

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

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

阅读更多内容:。

啊,我明白了,所以我要添加'var MAIL\u URL=smtp://USERNAME:PASSWORD@主机:端口/'到环境文件?我从未向env文件中添加过,我该怎么做?不,您将其设置为环境变量。或者,您可以使用
process.env.MAIL\u URL=…
来设置它,但这是一个有黑客攻击性的方法。所以,要将其设置为环境变量,我只需键入“export MAIL\u URL=smtp://USERNAME:PASSWORD@主机:端口/'进入终端?这将把它添加到我的本地机器环境中,但是如果我部署到Heroku,有没有办法在实际的meteor项目中包含一个只有Heroku服务器才能读取的特殊.env文件?有一个命令:
Heroku config:set MAIL\u URL=…
。您还需要以同样的方式设置
ROOT\u URL
,最有可能的是
BUILDPACK\u URL
。或者,您可以使用命令
MAIL\u URL=。。。meteor
-如果您有多个应用程序,它尤其方便。