メールサーバーからデータベースにデータをコピーする

メールサーバーからデータベースにデータをコピーする

メールをMySQLデータベースにバックアップすることは可能ですか?アカウントを持っているとします[メールアドレス]そして、mail.domain.com 内のすべてのメールを自分のコンピューターにローカルに記録しておきたいと考えています。

インターネットで調べたところ、メールサーバーはメールをテキストファイルとして保存するそうです。このファイルを入手してローカルコンピュータに転送すれば、処理してデータベースに保存できるのでしょうか?

そこで質問なのですが、メール サーバーからローカル コンピューターにファイルを転送するにはどうすればよいでしょうか? また、ファイルを識別するにはどうすればよいのでしょうか?

どんな例でもいただければ幸いです。

よろしくお願いします。

答え1

ほとんどのメール サーバーは、電子メールを「メール フォルダー」または「メール ディレクトリ」に保存します。「メール フォルダー」とは、各フォルダー/カテゴリにすべての電子メールが 1 つずつ保存されることを意味します。「メール ディレクトリ」とは、各フォルダーが実際にはディレクトリであり、各メール メッセージがそのディレクトリ内の 1 つのファイルとして表されることを意味します。

このメール ファイル (実際にはメール フォルダーまたはメール ディレクトリを意味します) を取得した場合、それをデータベースにインポートするスクリプトを作成できます。

メール ディレクトリ/フォルダの識別については、これはユーザーが行うものではなく、ドメインの「ポストマスター」がアドバイスするものです。これらはどこにでも存在する可能性があります。一般的な場所 (Unix システムの場合) には、/var/spool/mail と ~mail が含まれますが、これは任意です。

メール フォルダ/ディレクトリを取得する代わりに、サーバーに指示して提供してもらうこともできます。シナリオによっては、すべてのメールが受信トレイにあり、プロバイダーが「POP3」プロトコルを使用している場合は、各メールを取得して処理するメカニズムをスクリプト化できるはずです。POP3 は、非常にシンプルなプロトコルです。IMAP でも同様のことを行うことができます (IMAP ではすべてのファイルにアクセスできます)。ただし、IMAP は使用がはるかに難しく、フレームワーク/ライブラリが必要になる可能性があります。

メールメッセージ自体は非常にシンプルです -

メールは、2 行で区切られたヘッダーと本文で構成されます。ヘッダーを解析すると、メッセージの送信者、宛先、件名、日付などを取得できます。本文はテキストにすることも、複数のセクションに分割することもできます。各セクションは通常、Base64 でエンコードされています (ただし、これに代わる方法もあります)。たとえば、HTML とテキストの両方が含まれるメールや、メール内にメールまたは添付ファイルが含まれるメールを受信した場合などです。

関連情報