如何解决部署到Vercel后,为什么不能在带有nodemailer的react app中发送电子邮件
我正在尝试制作我的作品集,我想加入一个联系页面。 我在react中创建了所有代码,并使用nodemailer用于电子邮件服务(通过gmail)在本地运行良好,但是在部署到Vercel后,obvs无法正常运行。 我已在GMAIL中启用访问权限 我看了一下,我认为Vercel可能与nodemailer有关,但是我不确定。有人经历过吗?如果不是nodemailer,最好使用什么? 谢谢;)
我的服务器-config.js文件:
const nodemailer = require('nodemailer');
const dotenv = require('dotenv');
dotenv.config();
var transporter = nodemailer.createTransport({
service: 'gmail',auth: {
user: process.env.email,// your email address to send email from
pass: process.env.password // your gmail account password
}
});
module.exports = transporter;
我的服务器-index.js文件:
const path = require('path');
const express = require('express');
const transporter = require('./config');
const dotenv = require('dotenv');
dotenv.config();
const app = express();
const buildPath = path.join(__dirname,'..','build');
app.use(express.json());
app.use(express.static(buildPath));
app.post('/send',(req,res) => {
try {
const mailOptions = {
from: req.body.email,// sender address
to: process.env.email,// list of receivers
subject: req.body.subject,// Subject line
html: `
<p>You have a new contact request.</p>
<h3>Contact Details</h3>
<ul>
<li>Name: ${req.body.name}</li>
<li>Email: ${req.body.email}</li>
<li>Subject: ${req.body.subject}</li>
<li>Message: ${req.body.message}</li>
</ul>
`
};
transporter.sendMail(mailOptions,function (err,info) {
if (err) {
console.log(err)
res.status(500).send({
success: false,message: 'Something went wrong. Try again later!'
});
} else {
res.send({
success: true,message: 'Thanks for contacting us. We will get back to you shortly'
});
}
});
} catch (error) {
res.status(500).send({
success: false,message: 'Something went wrong. Try again later!'
});
}
});
app.listen(3030,() => {
console.log('server start on port 3030');
});
React ContactForm.js中的帖子要求
const sendEmail = (e) => {
e.preventDefault()
axios
.post('/send',{...state})
.then(response => {
setResult(response.data)
setState({name:'',email:'',subject:'',message:'' })
})
.catch(() => {
setResult({ success: false,message: 'Something went wrong,Try again!'})
})
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。