それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

sendmail でコマンドからメールを送信する。

メール通知のテストに使う。

postfix や exim4 のメールサーバーの設定をしていて、テスト・メールを送信したいときに、手作業でsendmail コマンドを送るのは、ちょっと面倒なのと、どのメールが未到達で、どのメールが到達したか区別するのが大変なのでスクリプト書きました。

サンプルスクリプト

サンプルスクリプトでは、連番を入れて、どのメールか識別できるようにしてて、日付と時刻をいれてそちらでも識別できるようにしておいた。

send_mail.sample.sh

#!/usr/bin/env bash


function counter() {
  if [[ !  -f /tmp/count ]] ;  then
    touch /tmp/count
    echo 1 > /tmp/count
  fi
  num=$(tail -n 1 /tmp/count)
  echo $(( num+1 )) > /tmp/count
  echo $num
}



ifs=$IFS
IFS=''
text="\
To:takuya@example.com
Subject: Hello, From $(hostname)

Hi, can you see me ?

num:$(counter)


---
takuya
 $(date --rfc-3339=seconds)
"


echo  $text
echo -e $test | sendmail -i -t