web-dev-qa-db-ja.com

sendmailメールはどこに保存されますか?

Sendmail用の自動応答スクリプトを作成しようとしています(いいえ、事前に作成されたスクリプトをまだ使用したくありません)が、サーバーで受信メールの場所を見つけることができないようです。私の構成がデフォルトではないことを指定する必要があります。

/rootを確認しましたが、メールフォルダがありません。 (私はroot以外のユーザーはいません)。 /var/mail/rootを調べましたが、メールで送信されたログがいくつかありますが、ユーザーから受け取った外部メールはありません。

/var/log/maillogを確認しましたが、エラーはありません。

どこを見ればいいかわからない。誰か助けてもらえますか?

10
Eduard Luca

sendmail(メール転送エージェント-MTA)は、メールを格納するように構成されている場所にメールを格納します。ただし、MTAのみは、現在キューに入れられているメールを格納します-ユーザーがアクセスできる場所へのメールの配信は、メール配信エージェントによって処理されます。 (MDA)。 sendmail(およびその他のMTA)はMDAとして機能できますが、これが事実であることは非常にまれです。

いずれにしても、メールファイルにアクセスしようとすることは、自動応答を実装する正しい方法ではありません。

これは、MTA(つまり、milter)またはMDAでフィルターとして実行する必要があります。 milter API はこのために特別に設計されたものであり、そこに すでに使用可能なツールがある可能性があります は、変更なしで要件を満たします。

現在のMDAがprocmailであれば、運がいいです。これにより、メールメッセージを処理するための非常に大きな柔軟性(実際には、独自のプログラミング言語)が提供されます。繰り返しますが、インターネットにはたくさんのコードがあります あなたのニーズを満たすかもしれません (AFAIKにはprocmailレシピの中心的なリポジトリはありませんが、googleを試してください)。

これを実装するために基本的な.forwardメカニズムを使用することもできますが、これはお勧めしません-procmailルートをたどってメッセージをフォークし、配信がスクリプトに依存/実装されないようにすることができます。

6
symcbean

デフォルト以外のディレクトリを設定している場合は、/ etc/mail/sendmail.cfを見て、パスの設定を確認する必要があります。

これはOSディストリビューション間で異なるだけでなく、sendmailの異なるバージョン間のデフォルトディレクトリも変更されました。簡単に言うと、デフォルトを伝えるためだけに、OSのバージョンとsendmailのバージョンを知る必要があります。メールドロップのデフォルトは/ var/spool/mail/$ USERNAMEで、ユーザーが別のアプリケーションでメールを読んだ場合、通常は$ HOME/mboxに移動されます。

一般的なメールディレクトリのリストを次に示します。

  • / var/mail/$ USERNAME
  • / var/spool/mail/$ USERNAME
  • $ HOME/mbox
  • $ HOME/mail
  • $ HOME/Maildir
6
Paul

設定方法にもよりますが、通常は/var/spool/mail、またはいくつかのディストリビューション/var/mail。どちらにもない場合はお知らせください。掘る

3
MadHatter