如何使用我自己的主机在nodejs中发送电子邮件?

我想发送电子邮件与节点js,但我的代码给出了一个错误。

Error: 140616526522240:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:794: at Error (native) code: 'ECONNECTION', command: 'CONN' } 

而我的代码是:

 router.post('/api/emailsending', function(req, res){ var nodemailer = require('nodemailer'); var smtpConfig = { host: 'euk-84736.eukservers.com', port: 25, secure: true, // use SSL auth: { user: 'no_reply@xyz.in', pass: 'xyz123' } }; var transporter = nodemailer.createTransport(smtpConfig); // setup e-mail data with unicode symbols var mailOptions = { from: 'no_reply@xyz.in', // sender address to: 'amandhlbharat@gmail.com', // list of receivers subject: 'Hello from Nodemailer <img draggable="false" class="emoji" alt="✔" src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/2714.svg">', // Subject line text: 'Hello Node', // plaintext body html: '<b><img draggable="false" class="emoji" alt="✌" src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/270c.svg"></b>' // html body }; transporter.sendMail(mailOptions, function(error, info){ if(error){ return console.log(error); } console.log('Message sent: ' + info.response); }); }) 

我不知道如何删除这个错误。任何人都可以解决这个问题? 非常感谢您的宝贵意见。

尝试使用此代码。首先,您必须在Google Cloud Console创build一个应用,然后从库中Enable Gmail API 。获取您的应用的凭据。单击凭证,然后在Authorized redirect URIs保留此链接https://开发人员.google.com / oauthplayground并保存。在另一个选项卡中打开此链接https://developers.google.com/oauthplayground/单击右侧的设置符号。并勾选checkbox(即使用您自己的OAuth证书)之后你必须给你的clientId和clientSecret.And同时在左边有一个带有占位符的文本框,比&#x5982;Input Your Own Scopes在这里保留这个链接https://mail.google.com/并点击授权API,然后点&#x51FB;Exchange authorization code for tokens然后你会得到你的refreshTokenaccessToken保持这两个在你的代码。希望这个为你。

使用这个代码

 const nodemailer = require('nodemailer'); const xoauth2 = require('xoauth2'); var fs = require('fs'); var express = require('express'); var http = require('http'); var https = require('https'); var transporter = nodemailer.createTransport({ service:'gmail', auth:{ type: 'OAuth2', user:'sender's mail@gmail.com', clientId:'Your-clientId of your app', clientSecret:'Your clientSecret of your app ', refreshToken:'Your refreshToken from oauth2 playground', accessToken:'Your accessToken from oauth2 playground' }, }); var app=express(); var options = { key: fs.readFileSync('privkey.pem'), cert: fs.readFileSync('cert.pem') } app.get('/mail', function(req,res){ fs.readFile("E:/syed/node/mail/mailwithdb/sheet.xlsx",function(err,data){ var mailOptions={ from:'Name <Sender's mail@gmail.com>', to:'Receivers's mail@gmail.com', subject:'Sample mail', text:'Hello !!!!!!!!!!!!!', attachments:[ { 'filename':'sheet.xlsx', 'content': data, 'contentType':'application/xlsx' }] } transporter.sendMail(mailOptions,function(err,res){ if(err){ console.log('Error'); } else{ console.log('Email Sent'); } }) }); }); var server = http.createServer(app).listen(3000); var server1 = https.createServer(options,app).listen(3443); console.log('server running on 3443'); 

运行服务器node app.js并打开浏览器并键入https://Yourdomain.com:3443/mail检查您的邮件和控制台。 希望这可以帮助….

尝试添加这个configuration

 var smtpConfig = { host: 'euk-84736.eukservers.com', port: 25, tls: { rejectUnauthorized: false }, auth: { user: 'no_reply@xyz.in', pass: 'xyz123' }};