2011-02-08 14 views
1

私たちのWebプロジェクトでは、信頼性の高い電子メール配信メカニズムが必要です。過去の苦い経験を​​、私はqmail-send(8)はプロセスが linuxコマンドラインから電子メールを送信する方法が異なります

  • であまりにも多くの障害がありますが実行されていない

    1. 場合に通知メールを送信する(時間ごとに実行)bashスクリプトを書かれていますメールログ

    通知メールを送信するには、qmail-sendプロセスが実行されていないとqmailが使用できないため、qmailに依存したくないことは明らかです。ただし、次のコマンドのqmailを経由して通知メールを送信します。

    echo "failure rate critical" | mail -s "qmail notification" [email protected] 
    

    のqmailせずにLinuxのコマンドラインからの電子メールを送信する最も簡単な方法は何ですか? sendmailを使用することはできますか?

    あなたがqmailを監視するために賢明なアラームシステムを持っている場合は、私にお知らせください。

  • 答えて

    2

    /usr/sbin/sendmailバイナリを呼び出します。それは、あなたが使用するMTAに関係なく通常利用可能であり、sendmailという名前であれば標準のsendmailインターフェースをサポートしていることを確認できます。

    これを使用する最も簡単な方法は、sendmail -tを呼び出してから、有効なToヘッダーを含む電子メールを標準入力に書き込むことです。 -tを省略すると、受信者アドレスをコマンドライン引数として渡す必要があります。

    もう1つの解決策はSMTPを使用することですが、bashスクリプトから電子メールを送信する必要がある場合、これは明らかに悪い解決策です.Bashにはsmtp経由で電子メールを送信する標準ライブラリがありませんsendmailを使用してメールを簡単に送信することはできませんが、SMTP経由では送信できません)。

    +0

    ありがとうございます。私はsendmailがqmailに影響を与えるシステム障害時に正しく動作するかどうかは不明なので、私は[別の解決策]を実装しました(http://serverfault.com/questions/234411/i-need-to-know-when-qmail -is-not-running)である。私は私に通知電子メールを送るために別のサーバー上のPHPスクリプトを起動します。 – aimfeld

    +0

    それはかなり汚いです。 sendmail形式のプログラムに電子メールを送るのは大丈夫です。エラーが報告されない場合、メール*はある時点で配信されるべきです(またはバウンスする)。 – ThiefMaster

    1

    POSIXにmailユーティリティがあります。あなたがLinuxだけの場合は、sendmailはOKです(ただし、システムの(誤った)設定に依存していますか?)。

    SMTPプロトコルはそれほど難しくありません。私は純粋なSMTPで話すことができると思います。それは簡単なメールのために発行する約4つのコマンドです。それは移植性があります:) 合併症があると、ピタが発生する可能性があります。

    関連する問題