首页 > 解决方案 > Nodemailer 联系表单在本地工作,但在部署时出错

问题描述

我创建了一个联系表单来学习使用 nodemailer,并且在我的本地主机中它可以工作,但是在将它部署到 Heroku 之后,每次它都会给我这个错误:{"code":"EAUTH","command":"API"}

这是我的代码:

const express = require('express');
const app = express();
const path = require('path');
const nodemailer = require('nodemailer');
const PORT = process.env.PORT || 3000;

// Middlewares
app.use(express.static(path.join(__dirname, 'public'))); 
app.use(express.json());

app.get('/', (req, res) => {
    res.sendFile('index.html');
});

app.post('/', (req, res) => {
    console.log(req.body);

    const transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
            user: process.env.MAIL_USER,
            pass: process.env.MAIL_PASS
        }
    });

    const mailOptions = {
        from: req.body.email,
        to: process.env.MAIL_USER,
        subject: `Message from ${req.body.name}`,
        text: `
        from: ${req.body.name} 
        email: ${req.body.email}
        ${req.body.message}`
    }

    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            console.log(error);
            res.send(error);
        }
        else {
            console.log('Email sent: ' + info.response);
            res.send('success');
        }
    })
});

app.listen(PORT, () => {
    console.log(`server at port ${PORT}`);
});

这是网站的链接:https ://nodejs-contactform.herokuapp.com/

任何帮助将不胜感激。

标签: node.jsformsherokunodemailer

解决方案


推荐阅读