2

見えないメールからのみ、Gmailからの添付ファイルを保存するスクリプトをPythonで書いています。帯域幅を節約するために、すべてのファイルが1回だけダウンロードされるようにします。

-ファイルがすでに削除されている可能性があるため、保存したフォルダを確認できません。その後、ファイルを再度ダウンロードすることはできません。(スクリプトは受信トレイにread_onlyにアクセスするため、電子メールを既読としてマークしません。スクリプトが再度実行されるとすぐに、電子メールが別のチャネルを介して既読としてマークされるまで、同じ添付ファイルを再度ダウンロードします。)

-現在、ファイル名をsqliteデータベースに保存していますが、2つの問題があります。次にスクリプトを実行するときにデータベースでファイル名を確認する方法がわかりません。添付ファイルは同じファイル名で届きますが、ダウンロードされません。

ファイルを複数回ダウンロードしないようにするための安全でスケーラブルな方法は何ですか?

4

3 に答える 3

1

Pythonには、このタスクをすでに非常にうまく実行しているオープンソースプロジェクトがいくつかあります。オフラインIMAPgetmailのソースコードを見てみませんか。また、GMailアカウントをバックアップしようとしているだけの場合は、自分で作成するのではなく、そのうちの1つを使用することをお勧めします...

于 2011-03-05T14:39:46.880 に答える
0

ファイル名をデータベースに保存するだけでなく、たとえば、Date:-メールのヘッダーも保存できます。(または、メールを一意に定義することが確実なヘッダーの任意の組み合わせ)。

于 2011-03-05T14:24:33.403 に答える
0

メッセージのヘッダーをフェッチし、メッセージのDateおよび/またはMessage-Idヘッダー値を使用して、そのメッセージ内のすべての添付ファイルの「一意のIDプレフィックス」を作成できます。次に、フォームのキーを作成し、[unique_id]_[filename]そのキーがデータベースまたはファイルシステムに存在するかどうかを確認します。そうでない場合は、そのメッセージのすべての添付ファイルをダウンロードし、変更された一意のIDキーを使用してそれぞれを保存します。

于 2011-03-05T14:38:48.570 に答える