Express 快速电子邮件服务器盖茨比
嗨,我想从我的盖茨比网站发一封电子邮件给我自己。我已经试过了 我设立了以下项目: /客户端(在端口8000上运行的盖茨比站点)Express 快速电子邮件服务器盖茨比,express,gatsby,nodemailer,Express,Gatsby,Nodemailer,嗨,我想从我的盖茨比网站发一封电子邮件给我自己。我已经试过了 我设立了以下项目: /客户端(在端口8000上运行的盖茨比站点) ----package.json server.js(在端口3000上运行的节点服务器) ----package.json 这是我的服务器代码: require("dotenv").config({ path: `.env`, }) const port = 3000 const bodyParser = require("body-
----package.json
server.js(在端口3000上运行的节点服务器)
----package.json 这是我的服务器代码:
require("dotenv").config({
path: `.env`,
})
const port = 3000
const bodyParser = require("body-parser")
const express = require("express")
const nodemailer = require("nodemailer")
const morgan = require('morgan')
const app = express()
app.use(morgan('dev'))
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
const contactAddress = "myemail@gmail.com"
const mailer = nodemailer.createTransport({
service: "Gmail",
auth: {
user: process.env.GMAIL_ADDRESS,
pass: process.env.GMAIL_PASSWORD,
},
})
app.get('/', function (req, res) {
res.send('The server is running...')
})
app.post("/contact", function (req, res) {
console.log('post request')
mailer.sendMail(
{
from: req.body.name,
to: [contactAddress],
subject: "Message from website",
html: req.body.message,
},
function (err, info) {
if (err) {
console.log(err)
return res.status(500).send(err)
} else {
//success
console.log('worked')
res.json({ success: true })
}
}
)
})
app.listen(port, () =>
console.log(`Mail server listening on port ${port}!`)
);
动作的形式类似于:
<form css={containerStyle} name="contact" method="post" action="http://localhost:3000/contact">
<FormComponents />
</form>
到目前为止,它还没有登录到控制台或发送电子邮件。任何我出错的地方都会有帮助。谢谢。我解决了。基本上,我不理解express是如何工作的——您需要在express中包含cors。并使用Axios发送表单数据 这个回答对我有帮助