我正在使用Nodemailer,但只能将电子邮件发送到运输商

问题描述

我只是从nodemailer页面复制了大多数示例代码来对其进行测试,但是我只能将电子邮件发送给传输器。如果我在mailOptions中更改“至”电子邮件,则只需将字符串更改为至,然后将其发送到运输者帐户。我尝试使用gmail帐户,但仍然存在相同的问题。在nodemailer站点上没有更多文档。是否应该使用运输者帐户向其他帐户发送电子邮件

当我希望所有电子邮件都发送到[email protected]时,所有电子邮件都将发送到[email protected]

const express = require('express')
const bodyParser = require('body-parser')
const nodemailer = require('nodemailer')
const app = express()

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: false}))

app.post('/api/form',(req,res) => {
    nodemailer.createTestAccount((err,account) => {
        const htmlEmail = `
        <h3>Contact Details</h3>
        <ul>
            <li>Name: ${req.body.name}</li>
            <li>Email: ${req.body.email}</li>
        </ul>
        <h3>Message</h3>
        <p>${req.body.message}</p>
        `
        let transporter = nodemailer.createTransport({
            host: 'smtp.ethereal.email',port: '587',auth: {
                user: '[email protected]',pass: 'VKGKReZW5Mhwz1yKAY'
            }
        })
        let mailOptions = {
            from: '[email protected]',to: '[email protected]',subject: 'New Message',text: req.body.message,html: htmlEmail
        }
        transporter.sendMail(mailOptions,(err,info) => {
            if (err) {
                return console.log(err)
            }
            console.log('Message sent: %s',info.message )
            console.log('Message URL: %s',nodemailer.getTestMessageUrl(info) )
        })
    })
})

const PORT = process.env.PORT || 3001

app.listen(PORT,() =>{
    console.log(`listening on port ${PORT}`)
})

解决方法

您需要寻找smtp提供程序。

host: 'smtp.ethereal.email',port: '587',

这部分也必须更改。 如您所见,它使用nodemailer的模板smtp服务器。