Node.js Nodemailerを使ってメールを送信する

Nodemailerをインストール

Nodemailerが未インストールの場合はインストールします。

npm install nodemailer
$ npm install nodemailer

added 1 package, and audited 2 packages in 1s

found 0 vulnerabilities

メール送信サンプル

// [1]
// Nodemailerの読み込み
const nodemailer = require("nodemailer");


// [2]
// SMTP情報設定("NODE_ENV"の値で本番/テスト切替)
var smtpConfig;
if (process.env.NODE_ENV === 'production' ){
    // 本番環境
    smtpConfig = {
        host: 'svXXXXX.xserver.jp',
        port: '465',
        secure: true,
        auth: {
            user: "username",
            pass: "password",
        }
    };
} else {
    // テスト環境
    smtpConfig = {
        host: 'svXXXXX.xserver.jp',
        port: '465',
        secure: true,
        auth: {
            user: "username",
            pass: "password",
        }
    };
}
let transporter = nodemailer.createTransport(smtpConfig);


// [3]
// メール送信内容設定
let mail_data = {
    from: '"送信元ユーザ名" <' + smtpConfig.auth.user + '>',
    to: 'example@example.com',
    subject: 'メールタイトル',
    text: 'メール本文',
    html: '<b>メール本文</b>',
};


// [4]
// メール送信実行
transporter.sendMail(mail_data, function (error, info) {
    if (error) {
        // エラー処理
        console.log(error);
    } else {
        // 送信時処理
        console.log( 'Email sent: ' + info.response );
        //
        console.log( 'NODE_ENV: ' + process.env.NODE_ENV );
    }
});

メール送信実行

env NODE_ENV=production node index.js
$ env NODE_ENV=production node index.js
Email sent: 250 2.0.0 Ok: queued as 821B2C8202C625
NODE_ENV: production

動作環境情報

"エックスサーバー" x10
"node" v14.17.3
"npm" 7.22.0
"nodemailer" 6.6.3

コメント

タイトルとURLをコピーしました