2015-11-02 54 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與垃圾郵件的用戶進行測試。

相關問題