Nodemailer电子邮件发送在Node.js中不起作用

帕帕S

我尝试使用Node.js Nodemailer发送电子邮件,但无法正常工作。我不知道如何正确设置它。我使用了下面的代码,但是它不起作用,并且出现错误。我是Nodemailer的新手,所以我无法找出错误。

允许安全性较低的应用:开启

安全性较低的应用程序访问

我需要通过Google帐户做什么?请帮助任何人找到解决方案。

app.js:

const express = require('express');
const bodyParser = require('body-parser');
const exphbs = require('express-handlebars');
const path = require('path');
const nodemailer = require('nodemailer');

const app = express();

// View engine setup
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');

// Static folder
app.use('/public', express.static(path.join(__dirname, 'public')));

// Body Parser Middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

app.engine('handlebars', exphbs({
    defaultLayout: false,
}));

//app.locals.layout = false;
 
app.get('/', (req, res) => {
    res.render('contact');
});

app.post('/send', (req, res) => {
    const output = `
    <p>You have a new contact request</p>
    <h3>Contact Details</h3>
    <ul>  
      <li>Name: ${req.body.name}</li>
      <li>Company: ${req.body.company}</li>
      <li>Email: ${req.body.email}</li>
      <li>Phone: ${req.body.phone}</li>
    </ul>
    <h3>Message</h3>
    <p>${req.body.message}</p>
  `;

    // create reusable transporter object using the default SMTP transport
    let transporter = nodemailer.createTransport({
        host: 'mail.madepartooty.com',
        port: 587,
        secure: false, // true for 465, false for other ports
        auth: {
            user: '[email protected]', // generated ethereal user
            pass: 'test123' // generated ethereal password
        },
        tls: {
            rejectUnauthorized: false
        }
    });

    // setup email data with unicode symbols
    let mailOptions = {
        from: '"Nodemailer Contact" <[email protected]>', // sender address
        to: '[email protected]', // list of receivers
        subject: 'Node Contact Request', // Subject line
        text: 'Hello world?', // plain text body
        html: output // html body
    };

    // send mail with defined transport object
    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            return console.log(error);
        }
        console.log('Message sent: %s', info.messageId);
        console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
        res.render('contact', { msg: 'Email has been sent' });
    });
});

app.listen(3000, () => console.log('Server started...'));

错误:

Error: connect ETIMEDOUT 157.245.154.37:587
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
  errno: 'ETIMEDOUT',
  code: 'ECONNECTION',
  syscall: 'connect',
  address: '157.245.154.37',
  port: 587,
  command: 'CONN'
}
苏雷什·芒斯

您可以执行以下操作

app.js

var nodemailer = require('nodemailer');
var tech = require('./external.js');

var transporter = nodemailer.createTransport({
 service: 'Gmail',
 auth: {
        user: tech.senderUsername,
        pass: tech.senderPassword
    }
});

const mailOptions = {
  from: tech.senderUsername, // sender address
  to: tech.reciverUsername, // list of receivers
  subject: 'Subject of your email', // Subject line
  html: '<p>Enter your message here.</p>'// plain text body
};

transporter.sendMail(mailOptions, function (err, info) {
   if(err)
     console.log(err)
   else
     console.log(info);
});

注意 :

使用Google帐户时,您可能还需要执行以下步骤

启用设置以允许所使用的Gmail帐户使用不太安全的应用。这里是链接:Google不太安全的应用

允许访问“显示解锁验证码选项”(允许访问您的Google帐户)这是链接:Google解锁验证码

有关更多信息,您可以通过sendMailUsingNodemailer

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

node.js nodemailer和nodemailer-sendinblue-transport无法发送电子邮件

无法通过node.js中的nodemailer发送电子邮件

Node.JS:即使没有错误,Nodemailer 也不发送电子邮件

在电子邮件 nodemailer node.js 中发送 html 页面

在 Node.js 中使用 Nodemailer 发送并发电子邮件

使用nodemailer将链接发送到电子邮件不起作用

使用Lambda,NodeJ和Nodemailer发送电子邮件不起作用

通过nodemailer发送Alexa Skill Fact中的电子邮件

使用Amazon SES服务从node.js发送电子邮件不起作用

使用nodemailer发送电子邮件,该电子邮件在远程主机上不起作用,但在本地主机上起作用

如何将表单以PDF格式发送到电子邮件(Nodemailer,React,Node.js)

我想在node js中使用nodemailer发送电子邮件附件。我正在使用elasticemail gate方式

从php发送电子邮件不起作用

Python电子邮件发送器不起作用

发送HTML电子邮件(链接不起作用)

AJAX电子邮件发送不起作用

Firebase 发送验证电子邮件不起作用

phpmailer电子邮件发送不起作用

在 aspnetboilerplate 中发送电子邮件不起作用

Django Celery发送注册电子邮件不起作用

Rails-发送名称不起作用的电子邮件

Codeigniter发送电子邮件不起作用

AWS SES发送电子邮件不起作用

Next.JS和Nodemailer,通过联系表发送电子邮件

从AWS Lambda发送SES电子邮件-节点JS错误“找不到模块'nodemailer”

Node.js通过电子邮件发送流

如何从Node.js发送电子邮件?

在Node.js中发送电子邮件?