Sendmail用の自動応答スクリプトを作成しようとしています(いいえ、事前に作成されたスクリプトをまだ使用したくありません)が、サーバーで受信メールの場所を見つけることができないようです。私の構成がデフォルトではないことを指定する必要があります。
/root
を確認しましたが、メールフォルダがありません。 (私はroot以外のユーザーはいません)。 /var/mail/root
を調べましたが、メールで送信されたログがいくつかありますが、ユーザーから受け取った外部メールはありません。
/var/log/maillog
を確認しましたが、エラーはありません。
どこを見ればいいかわからない。誰か助けてもらえますか?
sendmail(メール転送エージェント-MTA)は、メールを格納するように構成されている場所にメールを格納します。ただし、MTAのみは、現在キューに入れられているメールを格納します-ユーザーがアクセスできる場所へのメールの配信は、メール配信エージェントによって処理されます。 (MDA)。 sendmail(およびその他のMTA)はMDAとして機能できますが、これが事実であることは非常にまれです。
いずれにしても、メールファイルにアクセスしようとすることは、自動応答を実装する正しい方法ではありません。
これは、MTA(つまり、milter)またはMDAでフィルターとして実行する必要があります。 milter API はこのために特別に設計されたものであり、そこに すでに使用可能なツールがある可能性があります は、変更なしで要件を満たします。
現在のMDAがprocmailであれば、運がいいです。これにより、メールメッセージを処理するための非常に大きな柔軟性(実際には、独自のプログラミング言語)が提供されます。繰り返しますが、インターネットにはたくさんのコードがあります あなたのニーズを満たすかもしれません (AFAIKにはprocmailレシピの中心的なリポジトリはありませんが、googleを試してください)。
これを実装するために基本的な.forwardメカニズムを使用することもできますが、これはお勧めしません-procmailルートをたどってメッセージをフォークし、配信がスクリプトに依存/実装されないようにすることができます。
デフォルト以外のディレクトリを設定している場合は、/ etc/mail/sendmail.cfを見て、パスの設定を確認する必要があります。
これはOSディストリビューション間で異なるだけでなく、sendmailの異なるバージョン間のデフォルトディレクトリも変更されました。簡単に言うと、デフォルトを伝えるためだけに、OSのバージョンとsendmailのバージョンを知る必要があります。メールドロップのデフォルトは/ var/spool/mail/$ USERNAMEで、ユーザーが別のアプリケーションでメールを読んだ場合、通常は$ HOME/mboxに移動されます。
一般的なメールディレクトリのリストを次に示します。
設定方法にもよりますが、通常は/var/spool/mail
、またはいくつかのディストリビューション/var/mail
。どちらにもない場合はお知らせください。掘る!