首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用nodemailer node.js api发送邮件?

无法使用nodemailer node.js api发送邮件?
EN

Stack Overflow用户
提问于 2018-10-13 18:02:53
回答 1查看 1.8K关注 0票数 0

我编写了使用nodemailer node.js rest发送gmail的代码。这对于我的本地系统服务器很好,但是当我部署在windows-2000服务器上的相同代码时,我无法发送gmail并获得内部服务器错误。

这是我使用的代码片段--

代码语言:javascript
复制
var nodemailer = require('nodemailer');
var stringify = require('json-stringify');

// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport({
service: 'Gmail',
host: 'smtp.gmail.com',
port:587,
secure: false,
auth: {
    user: 'user@gmail.com',
    pass: 'user@123'
}
});

// setup e-mail data with unicode symbols
module.exports={

create:function(req,res){
    var params=req.allParams();
    var order_details=JSON.stringify(params);
    //console.log("order-->"+order_details);

    var mailOptions = {
    from: 'user@gmail.com', // sender address
    to: 'user1@gmail.com', // list of receivers
    subject: "g-mail message ", // Subject line
    html: order_details // html body
    }

    console.log("mailOptions"+JSON.stringify(mailOptions));
    smtpTransport.sendMail(mailOptions, function(err, result){
        console.log(result);
        if(err){
            return res.status(500).json("Error");
            //return res.json("System Error")
        }else{
            return res.status(200).json("e-mail sent to customer");
        }
        smtpTransport.close();
    });
}
}

当我从本地系统服务器调用api时,这是对conole.log(结果)->的响应。

代码语言:javascript
复制
{ accepted: [ 'user1@gmail.com' ],
 rejected: [],
 envelopeTime: 1094,
 messageTime: 1124,
 messageSize: 300,
 response: '250 2.0.0 OK 1539452574 189-v6sm7035924pfe.121 - gsmtp',
   envelope: 
   { from: 'user@gmail.com',
     to: [ 'user1@gmail.com' ] },
     messageId: '<d84e7c1e-7158-5c6a-851d-a783e05be5ce@gmail.com>' }

但是,当我试图从windows-2000服务器调用api时,对于行console.log(结果)->我得到的是“未定义”。

因此,我的问题是,我是从gmail.smtp服务器获得这个响应,还是从系统中无法到达gmail.smtp服务器。我试图从我的windws 2000服务器平平gmail.smtp服务器,结果丢包率为0%。所以从我的服务器可以联系到gmail.smtp?

我还尝试了465,587,25端口和安全-真,假选项。

关于错误日志,我得到了这个-

代码语言:javascript
复制
{ Error: self signed certificate in certificate chain at TLSSocket.
<anonymous> (_tls_wrap.js:1105:38) at emitNone (events.js:106:13) 
at TLSSocket.emit (events.js:208:7) at TLSSocket._finishInit (_tls_wrap.js:639:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:469:38) code: 'ECONNECTION', command: 'CONN' }}

感谢你在这个问题上的宝贵投入。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-13 19:37:38

代码语言:javascript
复制
var nodemailer = require('nodemailer');
var stringify = require('json-stringify');
// add this line before nodemailer.createTransport()
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport({
service: 'Gmail',
host: 'smtp.gmail.com',
port:587,
secure: false,
  auth: {
  user: 'user@gmail.com',
  pass: 'user@123'
   }
});

现在它会起作用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52795818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档