日本語のメールを送るシェルスクリプト

mail コマンドで日本語のメールを送る時、
ヘッダの内容を忘れて毎回調べているので、メモも兼ねて記事化。

※ nkf 使える前提です。

#!/bin/bash

function sendMail() {
  FROM="$1"
  TO="$2"
  SUBJECT="$3"
  CONTENTS="$4"

  TMPFILE="/tmp/mailsend-`date +%Y%m%d%H%M%S%N`"
  $NKF = "/usr/local/bin/nkf"

  echo "From: $FROM" >> $TMPFILE
  echo "To: $TO" >> $TMPFILE
  echo "Subject: `echo "$SUBJECT" | $NKF -jM`" >> $TMPFILE
  echo 'MIME-Version: 1.0' >> $TMPFILE
  echo 'Content-Type: text/plain; charset="ISO-2022-JP"' >> $TMPFILE
  echo 'Content-Transfer-Encoding: 7bit' >> $TMPFILE
  echo "" >> $TMPFILE
  echo "$CONTENTS" | $NKF -j >> $TMPFILE

  cat $TMPFILE | /usr/sbin/sendmail -i -t
  RESULT=$?

  rm -f $TMPFILE

  return $RESULT
}

### Main ###

FROM="hoge@yskw.info"
TO="fuga@yskw.info"
SUBJECT="そういえばTESTMAILだよ!"

HONBUN="hoge から
fuga 宛て
だよ。"

sendMail "$FROM" "$TO" "$SUBJECT" "$HONBUN"