UTF-8のメールをbashで作ってみる

複数の宛先にそれぞれ違う内容のメールを送ったりするときに Bashとかで作った方が後々繰り返しつかえて良いのですが、そのときにUTF-8のメールを作ってみたのでメモっときます。 なお一般的にはiso-2022-jpにした方が無難です。

vim subject.txt
---
{件名}
---
vim body.txt
---
{メール内容}
---
vim sendmail.sh
---
#!/bin/sh

TO=$1

if [ "$TO" = "" ]; then
  echo "usage: $0 mailaddress"
  exit 1
fi

FROM=sender@example.com
SUBJECT="=?UTF-8?B?`cat subject.txt | base64`?="

sendmail -t << EOF
From: ${FROM}
To: ${TO}
Subject: ${SUBJECT}
MIME-Version: 1.0
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Base64

`cat body.txt | base64`

EOF

---