ライフハック

node.jeでメールを送ってみるよー

参考にしました

https://www.yoshi-net.tokyo/%E6%8A%80%E8%A1%93%E3%83%8D%E3%82%BF/86/

今回は上記の記事をなぞるだけかも。
ほんとにやりたいのはpuppetterと連携させること。次の記事でやります。

まず送信用メールアドレスを作る

各レンタルサーバーでつくるがよい。
上記はさくらの画面です。

fs  / bluebird / co / nodemailer
をインストールしてください。

npm i fs
npm i bluebird
npm i co
npm i nodemailer

sendmail.js

const co = require('co');
const mailer = require('nodemailer');
const fs = require('fs');

const mail_config={
  "host": "xxxxxxxxxxx.ne.jp", //SMTPホスト
  "port": "587", // ポート
  "auth": {
    "user": "メールアドレス@aaa.aaaa", //ユーザー名
    "pass": "ぱすわーど" // パスワード
  }
}

//SMTPの接続
var smtp_tmp = mailer.createTransport(mail_config);
// プロミス化
var smtp = require('bluebird').promisifyAll(smtp_tmp);

// メール内容の設定
var mail = {
  from: "メールアドレス@aaa.aaaa", //送信元
  to: "xxxxxxxxxxxx@gmail.com", // 送信先
  subject: "テストメール", //メールのタイトル
  text: "メール本文", //メール本文
  attachments:[{
    filename: "screenshot.png",
    content: fs.readFileSync("screenshot.png")
  }]
};

co(function*(){
  try{
    var res = yield smtp.sendMailAsync(mail);
    console.log(res);
  }catch(e){
    console.log("Error");
    console.log(e);
  }
  smtp.close();
});

同じフォルダにscreenshot.pngというファイルを置いておくと送信できます。

実行は

node sendmail.js