2014年2月1日土曜日

[Node.js]emailjsでメール送信

node.jsでメールを送信するときは、emailjsを使うのが便利です。emailjsを使えば、とても簡単にHTMLメールや添付ファイルを扱うことができます。

emailjsをインストール
$ sudo npm install -g emailjs

サンプルプロジェクトを作成
$ mkdir hello-emailjs && cd hello-emailjs
$ touch package.json
$ touch server.json

package.json
{
  "name": "hello-emailjs",
  "description": "emailjs test app",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "express": "3.x",
    "emailjs": "0.x"
  }
}

server.json
/* jshint undef: false, unused: false */
var express = require('express');
var email = require('emailjs/email');

app = express();

var sendmail = email.server.connect({
  user: "YOUR_GMAIL_ACCOUNT",
  password: "*******",
  host: "smtp.gmail.com",
  ssl: true
});

var message = {
  /*
  attachment: [
    {
      data: "<html>i <i>hope</i> this works!</html>",
      alternative: true
    },
    {
      path: "path/to/file.zip",
      type: "application/zip",
      name: "renamed.zip"
    }
   ],
  */
  from: "hoge <hoge***@gmail.com>",
  to: "moge <moge***@gmail.com>",
  /*cc: "else <else@gmail.com>",*/
  subject: "testing emailjs",
  text: "i hope this works"
};

app.get('/', function (req, res) {
  sendmail.send(message, function (err, message) {
    var body = null;
    if (err) {
      body = err.toString();
    } else {
      body = "email sent.";
    }
    res.setHeader('Content-Type', 'text/plain');
    res.setHeader('Content-Length', Buffer.byteLength(body));
    res.end(body);
  });
});

app.listen(3000);
console.log('Express app started on port 3000');

user, password, from, to をご自分の環境に書き換えてください。userとpasswordの取り扱いにはご注意を。

必要なモジュールをインストール
$ npm install

実行
$ nodejs server.js
http://localhost:3000/ へアクセスするとメールが送信されます。メール送信に成功すると "mail sent." と表示され、失敗するとエラーメッセージが表示されます。

0 件のコメント:

コメントを投稿