とりあえず送る
文字コードとか気にせずとりあえず、手っ取り早くシェルからメールを送信する。
toAddr="aaa@bbb.cc.dd" subjString="[Log] `date +%Y%m%d`" sendMail(){ echo -e "To:${toAddr}\nSubject:${subjString}\n\n$1" | /usr/sbin/sendmail -t } sendMail "テストメール"
文字コードとかSubjectの長さを考慮する(NKFを使う)
nkfを使ってSubject、To、Fromをエンコードする
toAddr="ほげほげ <testuser>" subject="[Log] `date +%Y%m%d`" sendMail(){ subjectMIME=`echo ${subject} | nkf -M` # echo -e ${subjectMIME} toAddrMIME=`echo ${toAddr} | nkf -M` # echo -e ${toAddrMIME} body=`echo -e $1 | base64` echo -e "To:${toAddrMIME}\nSubject:${subjectMIME}\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: base64\n\n$body" | /usr/sbin/sendmail -t } sendMail "テストメール"
文字コードとかSubjectの長さを考慮する(NKFを使わない)
toAddr="aaa@bbb.cc.dd" subject="[Log] `date +%Y%m%d`" LINE_SEP=$'\n' IFS_DEFAULT=$IFS sendMail(){ subjectBase64="" lines=`echo -e ${subject} | fold -c10` sep="" IFS=${LINE_SEP} for line in ${lines}; do subjectBase64=${subjectBase64}${sep}"=?UTF-8?B?`echo -e ${line} | base64`?=" sep="\n\t" done IFS=${IFS_DEFAULT} #subject="${subjectBase64%\\n\\t}" # echo -e ${subjectBase64} body=`echo -e $1 | base64` echo -e "To:${toAddr}\nSubject:${subjectBase64}\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: base64\n\n$body" | /usr/sbin/sendmail -t } sendMail "テストメール"
[カテゴリ: プログラミング言語 > Shell]
[通知用URL]
Tweet
最終更新時間:2018年10月01日 22時20分00秒