パスワードを忘れた? アカウント作成
12006015 journal
日記

T.Ozakiの日記: CentOS6のmailコマンドでハマる 4

日記 by T.Ozaki

今までメインで使っていたVPS鯖(CentOS 5)に、システムが起動したらスマホにメールを飛ばす仕組み(まあぶっちゃげると/etc/rc.d/rc.localに起動通知メールを発信するスクリプトを実行するコマンドを書いただけ)を仕込んでいたので、それを新しく契約したVPS(CentOS 6)にも仕込む事に。

…が、同じコードを実行するとメールは来るもののヘンなToが入る上、本文がないという謎な状況に。

コードはこんな感じ。

#!/bin/bash -e

SRCADDR="webmaster@所有ドメイン"
DSTADDR="宛先となるスマホのアドレス"

cat << EOD | /usr/bin/nkf -j | /bin/mail -s "`/bin/hostname` Start-up!" $DSTADDR -- -f $SRCADDR
(ここに起動通知メールの本文が入る。)
EOD

…で、いろいろ探してみたところ sendmail コマンドによるメール発信(ダメ出しblog) に良い感じで解決できそうなコードが紹介されていたので、それを参考にコードをこんな感じに書き換えてみた。

#!/bin/bash -e

export LC_CTYPE=ja_JP.UTF-8
SRCADDR="webmaster@所有ドメイン"
DSTADDR="宛先となるスマホのアドレス"

cat << EOD | /usr/bin/nkf --ic=UTF-8 --oc=ISO-2022-JP | /usr/sbin/sendmail -i -f ${SRCADDR} ${DSTADDR}
From: ${SRCADDR}
To: ${DSTADDR}
Subject: `/bin/hostname` Start-up!
Content-Type: text/plain; charset=ISO-2022-JP
MIME-Version: 1.0

(ここに起動通知メールの本文が入る。)
EOD

コレを実行したところ、きちんと本文がはいるようになった。
…いや、寧ろ今までFromが"root"になってたのがSRCADDRに設定したものになったから予定以上か。

しかしホント移行は面倒だなぁ…。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • やはりいまでもそうやってsendmailコマンドラインを直に叩く仕事ってあるものだったのかという懐古主義にひたることができてひととき楽しかった。

  • by Anonymous Coward on 2015年04月11日 15時35分 (#2795012)

    そこは/usr/sbin/sendmailではなく/usr/lib/sendmailじゃないのかと小一時間問い詰めたい。
    また、どうせヘッダから何から書き出すのなら、sendmailの後ろも-i -tだけでいいだろ。無駄にゴチャゴチャつけんな。醜い。
    nkfの必要性も微妙。スクリプト自体をJISで保存しときゃ済む話な上に、たかが起動通知メール如きの一体どこに日本語を使う必要があるんだか全くもって理解不能。
    ぶっちゃけUS-ASCIIで十分だろ。

    更につっこむと、そりゃCentOSの/bin/mailが腐ってるだけだろと。
    mailxじゃなくてnailの方をビルドして、/bin/mailとして使っとけ。

    そもそも/bin/mailの使い方も酷すぎ。あげく、catとか(笑)
    そういう場合は、書き出すメール本文を別ファイルにしとくのが常識だけど、どうしてもスクリプト内に書きたい場合でも環境変数に入れるだろ普通。
    で、スクリプトの一番最後で

    exec /bin/mail -s $SUBJECT $ADDRESS <<EOF
    $MESSAGE
    EOF

    これ/bin/mailの定型文。

    # #!/bin/bash君の無駄にcatしたがる率の高さは異常。
    # 酷い時にはgrepすら、catしてgrepしてやがる(笑)

    • ># 酷い時にはgrepすら、catしてgrepしてやがる(笑)

      “cat FILE | grep”限定でなくいろいろなバリアントでということであれば
      就業場所で先任協業者が「ともかくそうやれ」
      と異論を認めない場合もあるのでしょうがないケースも。
      // 実施時に再監必須の手順書に従った操作のあれやこれやをはじめ…
      // 前段階のレビュー終了まででいろいろとほほな場合。無論これに限定されない。

      親コメント
      • by shibuya (17159) on 2015年04月11日 21時17分 (#2795283) 日記

        s/再監/再鑑 [srad.jp]/

        // 引用元の※主は方言としているが必ずしも業種・SIerで単独に限定されない。
        // オペミス御操作時の計上被害費用金額が大きいという共通項目はあってもそれだけが基準でもなさそう。

        親コメント
typodupeerror

ソースを見ろ -- ある4桁UID

読み込み中...