カテゴリー別アーカイブ: nodemailer

Node.jsでメール送信 (Webサービス利用)

Node.jsでメール送信するには, 大きく2つの方法があって, Postfixなどがインストールされたメールサーバーを利用する方法と, GmailやHotmailなどのWebメールのサービスを利用する方法です.

今回は, 簡単なWebサービスを利用する方法を紹介したいと思います. (といっても, 設定するパラメータが異なるぐらいで実装はほとんど同じですが…)

いずれの方法にせよ, Node.jsでメールを扱うためのモジュールであるnodemailerがインストールされている必要があります.

また, 利用するWebサービスのアカウント (情報) も必要です

var mailer     = require('nodemailer');
var settings = {
    service : 'Gmail',  //Webサービスごとの文字列
    //アカウント情報
    auth     : {
         user : 'username',
         pass : 'password,
         port : 25  //ポート番号の指定はなくてもいいっぽいです
         
    }
};
var smtp      = createTransport(settings);

//送信するメールの内容
//オプションは他にもたくさんあります !!
//詳細はnodemailerのGitHub READMEを参照してください
var options = {
     to          : 'xxxxxxxxxx@gmail.com',
     subject : 'Send mail by Node.js ',
     text       : 本文,                    //テキストメールの場合
     html      : '<b>本文</b>',  //HTMLメールの場合
     form     : 'Node.js'
};

smtp.sendMail(options, function(error, result) {
     if (error) {
         //メール送信失敗
         console.error(error);
     } else {
          //メール送信成功
          console.dir(result);
     }

     smtp.close();
});

ちなみに, テキストメールとHTMLメール両方を指定すると, HTMLメールで送信されるみたいです.

(少なくとも, )Gmailでは, 設定によってはブロックされます. 「Google アカウント: ログイン試行をブロックしました」というメールが送信されるので, そのメールに従ってブロックを解除すれば受信できるはずです.