最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Nodemailer 无法正常工作

网站源码admin29浏览0评论

Nodemailer 无法正常工作

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 邮件到达垃圾邮件箱

回答如下:

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论