2015-05-22 45 views
5

我已經安裝了電子郵件軟件包並試圖發送測試郵件,但它向我顯示以下錯誤:AuthError:無效登錄 - 535-5.7.8用戶名和密碼不接受meteor:發送電子郵件| AuthError:無效登錄 - 535-5.7.8

我敢肯定的憑據是正確的,代碼是一樣的:https://github.com/ideaq/meteor-email

/server/init.js

process.env.MAIL_URL="smtp://USERNAME%40gmail.com:[email protected]:465/"; 
console.log(process.env.MAIL_URL); 

Email.send({ 
    from: "[email protected]", 
    to: "[email protected]", 
    subject: "Meteor Can Send Emails via Gmail", 
    text: "test" 
}); 

也試過:

// configure email later for validation and sending messages 
smtp = { 
    username: '[email protected]', 
    password: 'my-pw', 
    server: 'smtp.gmail.com', 
    port: 465 
}; 

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

我似乎無法找到任何有關此問題或如何跟進的信息。誰能給我一個線索?

+0

你可以嘗試使用用戶名沒有「@ gmail.com」結尾? – SylvainB

+0

不幸的是,這並沒有解決它。 – flowen

回答

4

thx爲建議傢伙!我通過實際開啓兩步驗證來修復它,生成應用密碼並將其用作登錄。奇怪的解決方案,但它的工作!

+0

這樣做對我來說這個技巧,很好,你明白了這一點! –

0

嘗試端口25 SMTP = { 用戶名: '[email protected]', 密碼: '我的-PW', 服務器: 'smtp.gmail.com', 端口:25 };

+0

然後我得到一個錯誤:連接ETIMEDOUT(似乎是一個錯字,但它的副本粘貼從終端) – flowen

+0

你嘗試在'server/main.js'內加入這個'process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;' –

2
  1. 解決方案:這是安全性較低的應用程序的gmail安全。另外一個快速的解決方法是將關閉訪問Allow less secure apps

  2. 解決方法:最好的方式將兩步驟驗證您所使用的OAuth2 2-Step Verification

1

萬一工作,你面對上面的問題,配置我的運輸車如下所示解決了我的錯誤。

const transporter = nodemailer.createTransport({ 
    host: 'smtp.gmail.com', 
    port: 465, 
    secure: true, 
    auth: { 
    type: 'OAuth2', 
    user: process.env.MAIL_USER, 
    clientId: process.env.GOOGLE_CLIENT_ID, 
    clientSecret: process.env.GOOGLE_CLIENT_SECRET, 
    refreshToken: process.env.GOOGLE_CLIENT_REFRESH_TOKEN 
    } 
}); 

如果你不知道如何生成的ID,祕密和令牌,按照下列步驟進行https://medium.com/@pandeysoni/nodemailer-service-in-node-js-using-smtp-and-xoauth2-7c638a39a37e