カテゴリ:カテゴリ未分類
一度にたくさんのメールを送信しなければならなくなったので、以下のようなスクリプトを書いてみました。
みたいに、予めデータを用意して、コマンド一発、今回は約13k通のメールを送信するのに約20分程度の時間で済みました。(もちろん、コマンド実行したあとは、20分間待っていただけ)
#!/bin/sh
# -i: 送信するドキュメントのピリオド1つのみを無視する # -f: 送信エラーがあった時の連絡メール送信先 # # cat <<EOM | /usr/sbin/sendmail -t -i -f "sample_err_kanri@oi21.com" # From: sample_from@eigyou.0258.net # To: sample_to@iscb.net # Subject: test mail # # This is contents! # # EOM
# DEBG=1 # CHCK=1 # DEMO=1 # +++++++++++++++++++
# MAIL.FROM.TXT # MAIL.MESSAGE.TXT # MAIL.SUBJECT.TXT NKF="nkf"
FADR="MAIL.FROM.TXT" TADR="MAIL.ADDR.TXT" SUBJ="MAIL.SUBJECT.TXT" MESS="MAIL.MESSAGE.TXT"
if [ -f ${SUBJ} ];then SUBJECT=`cat ${SUBJ}`; fi if [ -f ${BUNC} ];then BOUNCE=`cat ${BUNC}`; fi
PrintEnv(){ cat<<EOE !!!!!!!!!!!!!!!!!!!!!!! DEBUG MODE !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" \${NKF} is ${NKF} ++++ \${TADR} is ${TADR} \${MESS} is ${MESS} \${FROM} is ${FROM} \${SUBJ} is ${SUBJ} \${SUBJECT} is ${SUBJECT} +++++++++++++++++++++++++ EOE }
if [ ${CHCK} ]; then echo "================= CHECK MODE !! =========================" elif [ ${DEMO} ]; then echo "***************** DEMO MODE !! *************************" fi }
DispSendMess(){ if [ -z "$1" ]; then echo "DispSendMess():Paramater Error (\$1 is NULL?)" exit 124 fi
From: ${FROM} To: ${1} Subject: ${SUBJECT}
} # =====================================================================
PrintEnv; exit 99 else PrintMode fi
do echo "*=> ${ADDR}" >&2 if [ ${CHCK} ]; then continue elif [ ${DEMO} ]; then DispSendMess "${ADDR}" else DispSendMess "${ADDR}" | nkf -j | sendmail -t -i -f "${BOUNCE}" fi done
お気に入りの記事を「いいね!」で応援しよう
最終更新日
2011.01.25 15:45:22
コメント(0) | コメントを書く |