NextJs SMTP Integration Guide

Guide to integrate Mailazy with your NextJs system


Prerequisites

You need to complete these given prerequisites, you can skip the step if you have already completed.

  1. Sign up for a Mailazy account.
  2. Complete Domain Authentication.
  3. Generate the Mailazy Access Key

Integrate Mailazy with NextJs

  1. Create Next App
npx create-next-app
  1. Add the Form
<div className={styles.container}>
  < form className={styles.main} >
    < formGroup className={styles.inputGroup} >
      < label htmlFor='name'>Name</label>
      < input type='text' onChange={(e)=>{setName(e.target.value)}} name='name' className={styles.inputField} />
    </formGroup>
    < formGroup className={styles.inputGroup} >
      < label htmlFor='email'>Email</label>
      < input type='text' onChange={(e)=>{setEmail(e.target.value)}} name='email’' className={styles.inputField} />
    </formGroup>
    < formGroup className={styles.inputGroup} >
      < label htmlFor='message'>Message</label>
      < input type='text' onChange={(e)=>{setMessage(e.target.value)}} name='message' className={styles.inputField} />
    </formGroup>
  < input type='submit' onChange={(e)=>{setSubmitted(e.target.value)}}/>
  </form >
</div>
  1. Added StyleSheet
.inputGroup {
  height: 50%;
  width: 200%;
  display: flex;
  flex-direction: column;
  margin: 10px 0;
}
.inputLabel {
  text-align: left;
}
.inputField {
  height: 30px;
}
  1. Set up Nodemailer
export default function (req, res) {
require('dotenv').config()
let nodemailer = require('nodemailer')
const transporter = nodemailer.createTransport({
  port: 587,
  host: "smtp.mailazy.com",
  auth: {
    user: process.env.mailazy_apikey,
    pass: process.env.mailazy_secret,
  },
  secure: false,
})

const mailData = {
  from: 'demo email',
  to: 'your email',
  subject: `Message From ${req.body.name}`,
  text: req.body.message + " | Sent from: " + req.body.email,
  html: `<div>${req.body.message}</div><p>Sent from:
  ${req.body.email}</p>`
}

transporter.sendMail(mailData, function (err, info) {
if(err)
  console.log(err)
else
  console.log(info)
})
res.status(200)
}