Nodemailer 无法正常工作

编程入门 行业动态 更新时间:2024-10-03 10:45:32

Nodemailer <a href=https://www.elefans.com/category/jswz/34/1770600.html style=无法正常工作"/>

Nodemailer 无法正常工作

我开发了一种方法来通过接收此代码来确认他的电子邮件地址,在本地主机上一切正常,但是当我在 Vercel 上部署时,确认电子邮件不会在请求后自动发送,有时你必须制作 3 或要求多了,但有时候你要求好几次他都不来

代码

require("dotenv").config();
const express = require("express");
const app = express();
const mongoose = require("mongoose");
app.use(express.json());
const cors = require("cors");
app.use(cors());
const port = 5007 || 3000;
const mongoUrl = process.env.MONGO_URL;
const bodyParser = require("body-parser");
app.use(bodyParser.json());

function connectToDatabase() {
  mongoose
    .connect(mongoUrl, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    })
    .then(() => {})
    .catch((error) => {});
}

const User = require("./schema_mongo");


app.post("/userConfirmPass", async (req, res) => {
  try {
    const email = req.body.email;
    const emailEncrypted = req.body.emailEncrypted;
    const user = await User.findOne({ email: email });
    if (!user) {
      res.status(400).send();
      console.log("erreur");
    } else {
      sendEmail(emailEncrypted, email).catch((err) => {});
      res.status(200).send(emailEncrypted);
    }
  } catch (error) {
    res.send({ status: "erreur" });
  }
});

function generateRandomCode(length) {
  let result = "";
  const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  for (let i = 0; i < length; i++) {
    result += characters.charAt(Math.floor(Math.random() * characters.length));
  }
  return result;
}

async function startServer() {
  await connectToDatabase();
  app.listen(port, () => {
    console.log(port);
  });
}

const liste = [];

startServer();

const nodemailer = require("nodemailer"); 
async function sendEmail(emailEncrypted, mailTo) {
  try {
    let transporter = nodemailer.createTransport({
      host: "smtp.gmail",
      port: 465,
      secure: true,
      auth: {
        user: process.env.USER,
        pass: process.env.PASS,
      },
    });
    const randomCode = generateRandomCode(6);
    liste[0] = randomCode;
    const mailOptions = {
      from: "[email protected]",  
      to: mailTo, 
      subject: "Confirmation mail",
      html: `<div style="background-color: #f5f5f5; padding: 20px;">
      <h2 style="color: #333;">Veuillez confirmer votre adresse e-mail</h2>
      <p style="background-color: #fff; padding: 10px; border: 1px solid #ccc;">
        Veuillez confirmer votre adresse e-mail afin de vous connecter à votre compte. Votre code de confirmation est :
        <span style="color: blue; font-weight: bold;">${liste[0]}</span>
      </p>
      <p style="color: #333;">Merci de faire confiance à Unidocs.</p>
      <p style="color: red; font-weight: bold;">Cordialement,<br/>
      L'équipe Unidocs</p> 
    </div>
    `,      
    };

    let info = await transporter.sendMail(mailOptions);
    console.log("Email sent:", info.messageId);
  } catch (error) {
    console.error("Error sending email:", error);
  }
}  

app.get("/getVerificationCode", async (req, res) => {
  const code = liste[0];
  try {
    res.send({ code });
  } catch (error) {
    res.send({ status: "erreur" });
  }
});

我试过 sendGrid 但我遇到了同样的问题,使用 sendGrid 邮件到达垃圾邮件箱

回答如下:

更多推荐

Nodemailer 无法正常工作

本文发布于:2024-05-31 05:06:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771305.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:无法正常   工作   Nodemailer

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!