Express 快速电子邮件服务器盖茨比

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-

嗨,我想从我的盖茨比网站发一封电子邮件给我自己。我已经试过了

我设立了以下项目:

/客户端(在端口8000上运行的盖茨比站点)
----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发送表单数据

这个回答对我有帮助