フリーランスWebエンジニア Omori

Next.js Logo

Node.jsでのメール送信

Nodemailerを使い、SMTP経由でのメール送信を実装します。 今回はGmailのSMTPサーバーを使いご紹介します。

事前準備

Gmail アプリパスワードが必要です。 取得方法は、以下の投稿をご確認ください。

Gmail アプリパスワードの取得

Nodemailerを使ったNode.jsプログラムの実装

bash
npm install nodemailer
npm install dotenv

npmを使って、Nodemailerと環境変数用のライブラリをインストールします。

.env
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USER="Gmailメールアドレス"
MAIL_SECURE=ssl
GMAIL_APP_PASSWORD="取得したアプリパスワード"

MAIL_USERとGMAIL_APP_PASSWORDは自身のものを記載してください。 その他の項目は固定です。 ※.envファイルは.gitignoreに設定してあることを忘れずに。

index.js
const nodemailer = require("nodemailer");
require('dotenv').config();
 
const transporter = nodemailer.createTransport({
  host: process.env.MAIL_HOST,
  port: process.env.MAIL_PORT,
  secure: process.env.MAIL_SECURE,
  auth: {
    user: process.env.MAIL_USER,
    pass: process.env.GMAIL_APP_PASSWORD,
  }
});
 
const email = "";
 
const data = {
  from: `差出人名 <${process.env.MAIL_USER}>`,
  to: email,
  subject: "件名",
  text: "本文\n改行\n\n2行改行",
};
 
transporter.sendMail(data, (error, info) => {
  if(error) {
    // handling with error
    console.log(error);
  } else {
    // handling with success
    console.log(info);
  }
});

その他の項目は固定です。

このプログラムをサーバー側で(REST APIとしてなど)実行することで、メール送信機能を動かすことができます。 今回は簡易的に以下のようにコマンドライン上で送信確認しました。

bash
node index.js

©Omori

MEOW!