node.js - 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/
任何帮助将不胜感激。
解决方案
推荐阅读
- ghidra - 清除几个功能(带选项)
- javascript - 什么是“未捕获 RangeError:超出最大调用堆栈大小”
- c# - Azure Pipeline 在 dotnet 构建中失败,需要升级到最新的 .net 核心版本
- php - 如何从 WooCommerce 结帐中清除特定的计费字段值
- javascript - 带有 Puppeteer 的 Web Scraping Loop:“等待仅在异步函数中有效”
- python - Excel python openpyxl方法
- java - \u000b 和其他与 docx4j 不兼容的控制 Unicode 字符?
- c++ - 在动态内存区域中初始化 char 数组(在构造函数中)时出现问题
- typescript - webpack ts-loader 不排除文件
- python - Pip 默认为用户安装,因为普通站点包不可写