首页 > 解决方案 > 模块未定义 Nodemailer

问题描述

我是新手,我想知道为什么我的 SendMail.mjs 模块在下面不起作用。

终端说我的 sendEmail 没有定义。

这是什么意思?

发送邮件.mjs

import nodeMailer from 'nodemailer';

export default sendEmail((req, res) => {
  let data = req.body
  let smtpTransport = nodeMailer.createTransport({
    host: 'smtp.gmail.com',
    port: 587,
    secure: false,
    requireTLS: true,
    auth: {
      user: 'xxxxxxxxxxxxxxxxxxx',
      pass: 'xxxxxxxxxxxxxxxxxx'
    }
  })
  let mailOptions = {
    from: data.mailFilled,
    to: `xxxxxxxxxxxxxxx`,
    subject: `Message from ${data.nameFilled}`,
    html: `
  <ul>
  <li>Name: ${data.nameFilled}</li>
  <li>Mail: ${data.mailFilled}</li>
  </ul>
  <h3>Message</h3>
  <ul>
  <li>Message: ${data.messageFilled}</li>
  </ul>
  `
  };

  smtpTransport.sendMail(mailOptions, (error, response) => {
    if (error) {
      res.send(error)
    } else {
      res.send('Success')
    }
  })
  smtpTransport.close();
})

我在客户端使用 axios

服务器.js

const express = require('express');
const cors = require('cors');
const app = express();
import sendEmail from './sendMail.mjs';
const PORT = process.env.PORT || 3001;

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cors());

app.get('/', (req, res) => {
  res.send('GET request to the homepage');
})

app.post('/api/forma', sendEmail(req, res));

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

非常感谢您提前

标签: reactjs

解决方案


您可以尝试替换import sendEmail from './sendMail.mjs';const sendMail = require("./sendMail.mjs")吗?


推荐阅读