从服务器从 nodemailer 发送电子邮件时出错

Posted

技术标签:

【中文标题】从服务器从 nodemailer 发送电子邮件时出错【英文标题】:Getting error while sending emails from nodemailer from server 【发布时间】:2019-11-26 22:38:09 【问题描述】:

我正在尝试使用 nodemailer 从我的 node.js 应用程序发送电子邮件。 我不知道为什么,但是当我在我的 cpanel 中上传文件并检查后尝试时,它发送错误为:

“错误:连接 ECONNREFUSED 74.125.24.108:587”

虽然它在我的本地主机上运行良好。

我什至允许在我的 Google 帐户中使用不太安全的应用程序。

var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport(
  host: 'smtp.gmail.com',
  port: 587,
  secure: false,
  auth: 
    user: 'myemail@gmail.com',
    pass: 'XXXXXXXXX'
  ,
  tls: 
    rejectUnauthorized: false
  
);


var mailOptions = 
  from: 'myemail@gmail.com',
  to: "myclient@gmail.com",
  subject: 'Code',
  text: "Hello",
;



transporter.sendMail(mailOptions, function(error, info) 
  if (error) 
    console.log(error);
   else 
    console.log('Email sent');

  
);

得到错误:

“错误:连接 ECONNREFUSED 74.125.24.108:587”

【问题讨论】:

确保您的服务器允许发送 smtp ,检查您是否可以发送电子邮件? smtper.net 你能告诉我如何检查吗?我不知道... 通过我给出的链接测试它:smtper.net 我得到了这个:“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.0 必须先发出 STARTTLS 命令。c26sm10992497qtp.40 - gsmtp”跨度> 它在本地主机上工作正常,但在实际服务器上却不行,这是什么问题? 【参考方案1】:

在服务器上使用这种方式,允许您的 gmail 帐户降低安全性 https://support.google.com/cloudidentity/answer/6260879?hl=en

var transporter = nodemailer.createTransport(
  service: "gmail",
  secure: true,
  auth: 
    user: 'myemail@gmail.com',
    pass: 'XXXXXXXXX'
  
);

【讨论】:

我已经启用了“lesssecureapps”选项,但仍然出现错误。 你用上面的代码替换了你的代码,你得到了什么错误?

以上是关于从服务器从 nodemailer 发送电子邮件时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 firebase 功能和 nodemailer 从联系表单发送电子邮件

Nodemailer /发送给出404错误

使用 nodemailer 通过 Node.js 发送电子邮件不起作用

使用 Async/Await 的 Nodemailer 电子邮件确认

将带有表单的文件从 nuxt 发送到节点服务器(nodemailer)

Nodemailer不发送电子邮件