LoginSignup
2
2

More than 5 years have passed since last update.

Nodeでさくらのメールを使う

Posted at

ここではさくらのSMTPを使って送信を行います。

nodemailer
nodemailer document
を使用します。

ポイント

tlsを使用するにはsecure: trueですが465ポート強制になってしまう。
さくらは587を要求しているのでsecure: falserequireTLS: trueを設定する必要がある。

コード

mail.js
const mail = require('nodemailer');

const transporter = mail.createTransport({
  host: 'XXXXXXXX.sakura.ne.jp',
  port: 587,
  secure: false,
  requireTLS: true,
  auth: {
      user: 'user',
      pass: 'pass'
  }
});

let mailOptions = {
  from: 'sender@example.com',
  to: 'recipient@example.com',
  subject: 'Message',
  text: ''
};

// return Promise
exports.send = (body) => {

  mailOptions.text = body;

  // メール送信
  return (async () => {
    const result = await transporter.sendMail(mailOptions).then(info => {
      return {
        flag: true,
        data: info
      };
    }).catch(error => {
      return {
        flag: false,
        data: error
      };
    });

    if (!result.flag) {
      console.log(result.data.stack);// メール送信失敗時のスタックトレース
    }

  })();
}
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2