2015-11-02 53 views
0

我有一个流星应用程序,我正在使用email package。我已经在使用帐户(帐户用户名和帐户密码),最近通过gmail帐户设置了process.env.MAIL_URL变量,测试了“重置密码”功能并收到了电子邮件。为什么貌似我的电子邮件没有与Meteor的电子邮件包一起发送?

我当时试图编写代码来接收电子邮件(用户只需单击按钮)基本上看到这项工作,但在本地运行流星时,我没有在控制台中看到电子邮件“记录”。

如果我不

if(Meteor.isServer){ 
    Email.send({ 
     to: "[email protected]", 
     from: "[email protected]", 
     subject: "Example Email", 
     text: "Text of the email." 
    }); 
}) 

我看到控制台消息

consolemessage

(这是,如果我的“重置密码”,单击与帐户的包,我得到同样的事情功能)

但我没有看到此消息调用我自己的代码后,文档说明,这很简单。

我有一个serverMethods.js下具有

Meteor.methods({ 
    sendEmail: function (text) { 

    check([text], [String]); 

    this.unblock(); 
    Email.send({ 
     to: "[email protected]", 
     from: "[email protected]", 
     subject: "Example Email", 
     text: text 
    }); 
}); 

然后在客户端,我喜欢调用/服务器文件

Template.NavBar.events({ 
"click #testEmail" :function(event){ 
    event.preventDefault(); 
     Meteor.call('sendEmail', 'dataText'); 
    } 
}); 

(即testEmail一个项目,在我的导航栏的ID模板)。点击后,如果我console.log我可以看到我的流星电话正在处理,但我没有在控制台中看到相同的消息,如果电子邮件正在发送。

由于文档中解释了此功能的简单性,并且我发现的关于该主题的大多数教程基本上只是做同样的事情,所以我缺少的必须非常简单明显。不过,我不明白为什么我没有看到我的控制台中记录的电子邮件,因为它发生在帐户功能或如果我从服务器端自己调用Email.send

回答

0

也许这只是一个错字,但要确保你设置的环境变量“MAIL_URL”而不是“MAIL_UR”。

我发现很容易从一个设置文件(仅在服务器端)动态地设置:

Meteor.startup(function() { 
    process.env.MAIL_URL = 'smtp://' + Meteor.settings.private.mail.username + ':' + Meteor.settings.private.mail.password + '@' + Meteor.settings.private.mail.smtpServer + '/'; 
}); 
+0

谢谢。写这个问题时这是一个错字。正如我所说的,我得到了与_accounts password_相关的电子邮件功能(以便ent var被正确设置)。另外,即使我没有这个变量,在我的本地环境中,我会在控制台上看到消息(警告电子邮件没有被实际发送并且该变量必须被发送)。令我感到困惑的是,我没有在控制台上看到消息,甚至(显然)遵循了文档说明,并且我无法确定我的代码中有哪些错误或不同。 – Diego

0

好了,这毕竟是愚蠢的。如果您有process.env.MAIL_URL,则不会看到“未发送邮件;要启用发送,请设置MAIL_URL环境变量。”消息记录在控制台中。这只有在你没有设置变量时才会显示。

我的问题是我有变量集,但我用我的测试用的“到”电子邮件地址不够小心。我没有发送电子邮件到正确的帐户,所以我没有看到任何电子邮件被发送,也没有任何“虚假”的电子邮件在控制台上。

因此,基本上,与process.env.MAIL_URL我只是不得不改变

Email.send({ 
    to: "[email protected]", <--- Real address here 
    from: "[email protected]", 
    subject: "Example Email", 
    text: text 
}); 

得到发送电子邮件或删除process.env.MAIL_URL与垃圾邮件的用户进行测试。

相关问题