mailコマンドを使用して電子メールを送信しようとしています
mail -s "subject" email_address < email_text
しかし、電子メールが実際に送信されたかどうかを確認できますか(例:email_addressが間違っているか正しいか)。
答え1
すべてのメッセージが消えたことを確認するには、/var/spool/mqueue ディレクトリーが空でなければなりません。このディレクトリには、メールキュー内のメッセージに関連付けられた一時ファイルが含まれており、ログファイルを含めることができます。たとえば、
# ls -ltr /var/spool/mqueue
-rw-r----- 1 root smmsp 240 Nov 13 22:11 dftADBBuZl027798
-rw-r----- 1 root smmsp 1149 Nov 13 23:18 dftADCIacE001585
-rw-r----- 1 root smmsp 12216 Nov 14 17:06 dftAE666SH027158
-rw-r----- 1 root smmsp 1530 Nov 14 21:10 qftADCIacE001585
-rw-r----- 1 root smmsp 1452 Nov 14 21:10 qftADBBuZl027798
-rw-r----- 1 root smmsp 930 Nov 14 21:33 qftABDxS6e024439
dfファイルには、保留中の電子メールの本文が含まれています。 qfファイルには、すべてのメッセージヘッダーだけでなく、最も最近の失敗メッセージやこの特定の電子メールを送信しようとした回数など、いくつかの追加情報が含まれています。そのため、メールが消えないことがわかります。
dfファイルは削除されるまで静的に保持されますが、qfファイルはこのキューが実行されるたびに更新されます。
挨拶、
答え2
デーモンとは何の関係もありません。
この
mailq
コマンドは、まだキューにある各メッセージの要約を表示します。すべての標準互換デーモンはこのコマンドを実行するので、正常に動作します。ほぼ常に宛先アドレスと一致する行を見つけて(ほぼ常に分布がわずかに異なる場合があります)、特定のメッセージ
/var/log/mail.log
に何が起こっているのかを追跡し、そのメッセージを転送しようとしたときにリモートサーバーから受信した応答を追跡します。