2016-06-25 9 views
1

Я использовал свою учетную запись gmail для отправки сообщений оповещений smtp в адрес электронной почты моих пользователей. Например, регистрация или учетная запись заблокированы и т. Д. Я использую nodemailer, и электронная почта была успешно отправлена ​​без единого отказа. Ниже мой код.Ошибка: connect ECONNREFUSED 127.0.0.1:465 nodemailer

var nodemailer = require("nodemailer"); 

// create reusable transport method (opens pool of SMTP connections) 
var smtpTransport = nodemailer.createTransport("SMTP",{ 
    service: "Gmail", 
    auth: { 
     user: "[email protected]", 
     pass: "userpass" 
    } 
}); 

// setup e-mail data with unicode symbols 
var mailOptions = { 
    from: "Fred Foo ✔ <[email protected]>", // sender address 
    to: "[email protected], [email protected]", // list of receivers 
    subject: "Hello ✔", // Subject line 
    text: "Hello world ✔", // plaintext body 
    html: "<b>Hello world ✔</b>" // html body 
} 

// send mail with defined transport object 
smtpTransport.sendMail(mailOptions, function(error, response){ 
    if(error){ 
     console.log(error); 
    }else{ 
     console.log("Message sent: " + response.message); 
    } 

    // if you don't want to use this transport object anymore, uncomment following line 
    //smtpTransport.close(); // shut down the connection pool, no more messages 
}); 

Только вчера, регистрация для Google для бизнеса счета на мой @mydomain счет, а затем заменить Gmail с моим новым Google для бизнеса электронной почты, который

var smtpTransport = nodemailer.createTransport("SMTP",{ 
    service: "Gmail", 
    auth: { 
     user: "[email protected]", 
     pass: "userpass" 
    } 
}); 

Проблема заключается в том, что не послать электронная почта с новой учетной записью. Это скорее вернуло ошибку на моей консоли. Я попытался изменить безопасность своей новой учетной записи, чтобы разрешить менее безопасные приложения с консоли Google безрезультатно. Пожалуйста, что означает эта ошибка? Также, если использовать имя пользователя и pwd для моего письма, это лучший вариант? Как лучше всего достичь? Любая помощь будет оценена по достоинству.

+0

Почтовый ящик узла, очевидно, пытается подключиться к localhost (127.0.0.1), что маловероятно для почтового сервера Google. Это означало бы, что что-то не так в транспортной обстановке. Попробуйте это 'nodemailer.createTransport ('smtps: //user%40gmail.com: [email protected]');' – Molda

+0

@Molda благодарю вас за ваше время. Ваше решение работает с учетной записью gmail.com. Он не работает, когда я заменяю адрес электронной почты '@ mydomain.com'. Я получаю ошибку выше. Я смущен, я ожидал, что это сработает, учитывая, что оба аккаунта google. –

+0

Вы не случайно меняете smtp.gmail.com на smtp.mydomain.com? – Molda

ответ

4

Благодарим вас за ваше время. Ниже приводится то, что работает для меня.

nodemailer.createTransport('smtps://user%myDomain.com:[email protected]'); 

изменено на

var smtpConfig = { 
    host: 'smtp.gmail.com', 
    port: 465, 
    secure: true, // use SSL 
    auth: { 
     user: '[email protected]', 
     pass: '[email protected]' 
    } 
}; 
var transporter = nodemailer.createTransport(smtpConfig); 

I Found пример выше на документ https://github.com/nodemailer/nodemailer. Я подозреваю, что это может случиться с вами, если ваш пароль содержит символ @, рассматривающий u и ссылку smtps. Поэтому целесообразно разбить его на объект без символа @, мешающего вашему URL-адресу smtps. Это мое предположение. Тем не менее, вышеупомянутое решение работает для меня. Кроме того, не забудьте оставить менее безопасные приложения с консоли Google.

Смежные вопросы