Express.js

Send email from Express.js API endpoints.

Setup

bash
npm install mailsetu

Send email from a route

javascript
const express = require('express')
const MailSetu = require('mailsetu').default

const app = express()
app.use(express.json())

const client = new MailSetu(process.env.MAILSETU_API_KEY)

app.post('/api/send-otp', async (req, res) => {
  const { email, otp } = req.body

  try {
    const { id } = await client.emails.send({
      from: 'App <noreply@yourapp.com>',
      to: [email],
      subject: `Your OTP is ${otp}`,
      html: `<h2>Your one-time password: <strong>${otp}</strong></h2><p>Expires in 10 minutes.</p>`,
    })
    res.json({ success: true, emailId: id })
  } catch (err) {
    res.status(400).json({ error: err.message })
  }
})