私は家族のために自分のLinuxメールサーバーをホストしています。昨日、父は受信トレイフォルダ内のすべてのメールを失いました。それがひどいユーザーエラーによるものなのか、パスワードの侵害によるものなのかはまだわかりませんが、それはここでは重要ではありません。マーフィーの法則のおかげで、私もバックアップがなく(撮影しないで、直後に作成しました)、彼にとってひどく気分が悪いです。したがって、残っている唯一のオプションは、パーティションから削除された電子メールを回復しようとすることです。
サーバー上のext4データパーティション全体のイメージを「dd」ですぐに撮影しました。これで、処理する数百GBのアーカイブができました。これは、巨大な干し草の山のように感じます。この画像からメールを抽出する最良の方法は何ですか?お父さんのメールをgrepすると、「To:[email protected]」のような一致がたくさんあり、-Cオプションを使用すると、他の通常のSMTPヘッダー(From、Subject、Date)が表示されるため、メールがどこかにあることがわかります。 、Message-Id、...)。
私は最初にカスタムフォーマットで「最前線」を試しましたが、メールのサイズが固定されていないため、結果は決定的ではありませんでした。
私も試しました https://pypi.org/project/mail-parser/ しかし、私が望むことを行うにはパッチが必要なようです(メールだけが含まれているテキストファイルが必要です。たくさんのメールが入った大きな生ファイル)。
このext4イメージから電子メールファイルを妥当な精度で再構築するための他の(無料の)ツールまたは方法を知っていますか?説明したように、トリッキーな部分は、画像や他の形式とは異なり、メールはプレーンテキストで保存され、サイズを直接含まないことです。したがって、このツールは、解析/抽出を行うために、ある時点でrfc822を認識する必要があると思います。 。
さて、それは私に数時間と少しのPythonスクリプトを作成しました、しかしそれはついにうまくいきました!私は私の父の失われた電子メールのすべてを回復することができました。
手順全体とPython使用したスクリプトは次のとおりです: https://github.com/piwai/mail-recovery 要するに、私がしたことは次のとおりです。