I cannot send mail using resend and nodemailer in Vercel

62 Views Asked by At
import express from "express";
import nodemailer from "nodemailer";
import dotenv from "dotenv";
import bccAddresses from "./src/components/Mail/bcc_mail.js";

dotenv.config();

const app = express();
const port = process.env.PORT || 3000;

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

function main(openai_response, bcc_addresses) {
  return new Promise((resolve, reject) => {
    const transporter = nodemailer.createTransport({
      host: "smtp.resend.com", 
      port: 465, 
      secure: true, 
      auth: {
        user: "resend",
        pass: process.env.RESEND_API_KEY,
      },
    });

    transporter.sendMail(
      {
        from: process.env.EMAIL_USER,
        to: bcc_addresses || bccAddresses,
        subject: "Su Tüketimine Dikkat Edelim Geleceğimize Sahip Çıkalım",
        html: openai_response,
      },
      (error, info) => {
        if (error) {
          reject(error);
        } else {
          console.log("Email sent: %s", info.response);
          resolve(info);
        }
      }
    );
  });
}

app.post("/send-email", (req, res) => {
  const { openai_response, bcc_addresses } = req.body;

  main(openai_response, bcc_addresses)
    .then((info) => {
      res.send("Email sent successfully");
    })
    .catch((error) => {
      console.error("Error sending email: ", error);
      res.status(500).send("Error sending email");
    });
});

app.listen(port, () => {
  console.log(`Server Çalışıyor ${port}`);
});

What I want to do is to send mail to people who are on my mailing list or who add their mail address with input later. The mail subject is that I want the data from openai to be saved to the local storage and then go from here. It worked with nodemailer without any problems in local, but since vercel nodemailer does not accept it, I use my own smtp using a new method.

The proxy setting in the vite.config.js file also points to the vercel url.

The error console I get is also as follows. POST https://aaa-bbb.vercel.app/send-email net::ERR_ABORTED 405 (Method Not Allowed)

0

There are 0 best solutions below