Node.js で メールをいっぱい作る

「システム化するほどではないけど、手っ取り早く メールの下書きをたくさん作りたいな〜、 Node で。」って時の Tips です。一応 Mac 限定だけど、 Linux でもできる場合もあるかもです。

mailto:user@example.com スキームを open コマンドで開きます。
const mails = [
  {
    to: 'user1@example.com',
    sub: 'タイトル',
    body: 'これは本文です。'
  },
  {
    to: 'user2@example.com',
    sub: 'タイトル',
    body: 'これも本文です。'
  }
]

const { promisify } = require('util')
const { exec } = require('child_process')
const execPromise = promisify(exec)

Promise.all(
  mails.map(({ to, sub, body }) =>
    execPromise(`open "mailto:${to}?Subject=${sub}&Body=${body}"`)
  )
)
  .then(() => console.log('OK!'))
  .catch(() => console.error('Error..'))

これで、デフォルトのメーラーでメールの下書きがどどっと開くはず!