如何使用我自己的主机在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同时在左边有一个带有占位符的文本框,比如Input Your Own Scopes
在这里保留这个链接https://mail.google.com/并点击授权API,然后点击Exchange authorization code for tokens
然后你会得到你的refreshToken
和accessToken
保持这两个在你的代码。希望这个为你。
使用这个代码
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' }};
- Phantomjs应该不会发送cookie
- Rails 5 – ActionCable – 无法升级到WebSocket
- Node.js – mysql查询超时
- 如何使用Node.js在AWS Elastic Beanstalk上创build自己的日志文件?
- 从WebDriverJS确定会话ID
- React和Electron with Bablify:Uncaught TypeError:fs.readFileSync不是一个函数
- 如何在Node.js中将express与tcp-socket相结合
- 如何使用officegen nodejs将自定义图像/样式文本添加到表格单元格
- Node.js仍然“stream血”?