web-dev-qa-db-ja.com

IMAP:メッセージがサーバーから削除されたときにローカルに保存する

シナリオは次のとおりです。

  • スペースが少ない(たとえば1GB)IMAPサーバー
  • thunderbird 38.3以降などの電子メールクライアントを備えたかなりの数のIMAPクライアント(たとえば、2台の電話、1台のタブレット、3台のPC)

私が達成したいのはこれです:

  1. すべてのPCクライアントは、メッセージの完全なコピー(ヘッダーだけでなく)を保持する必要があります
  2. すべてのPCクライアントは、リモートで削除されたメッセージをローカルに保存する必要があります(つまり、同期の結果として、メッセージ全体をローカルフォルダーに移動してから、独自のIMAPフォルダーから削除します)。

このようにして、各PC上のすべての(完全な)メッセージのローカルコピーを保持しながら、IMAPサーバーのスペースを節約できます(ただし、非PCクライアントから電子メールが削除されたときにPCクライアントが同期され、非PCクライアントからの削除が回避されます)。ローカルコピーが完全であることを確認するための回避策になる可能性があります)。

同様のシナリオ( thisthis など)に対応するいくつかの関連する質問を見つけましたが、この質問の解決策を提供するものはありません。

これは非常に一般的なニーズであると私は信じているので、電子メールクライアントの第一人者、できればThunderbirdが解決策を考え出すことを願っています。

2
mmj

より良い解決策が見つかるまで、最善の回避策は、必要に応じて(たとえば、IMAPサーバーのクォータ制限が近づいているときに)古いメッセージを手動でアーカイブすることだと思います。もちろん、IMAPアカウントごとに、ローカルフォルダにアーカイブするメッセージをアクティブ化する必要があります(これは、メッセージを選択したときに[アーカイブ]コマンドボタンを表示するために必要です)。

Awesome Auto ArchiveAutoarchiveReloaded のようなアドオンも試しましたが、どちらも不十分でした。最初のアドオンは構成中にエラーが発生し、2番目のアドオンは実行した方が安全です。手動で。

いつの日か、Thunderbirdが、クォータ制限に近づいたときに古いメッセージを自動的にアーカイブできるIMAPアカウント用の「シンプルな」オプションを追加することを願っています。 IMAPアカウントのこのような重要な機能がまだ実装されていないのはなぜだろうと思います。

1
mmj

メッセージをIMAPフォルダーからローカルフォルダーに移動するThunderbirdフィルターを作成できます。

とにかく、「IMAPアーカイバと削除者」は少なくとも10年以来、インターネットコミュニティの強いニーズであるように思われます。なぜ今まで解決策が出てこなかったのかわかりません。私は現在ここで働いています:

https://jumpjack.wordpress.com/2016/03/10/come-cancellare-migliaia-di-email-dai-server-libero-in-un-colpo-solo/

私の最終的な目的は次のとおりです。

1)大量のメッセージを削除したり、メッセージをダウンロードしたりするタスクを自動化するExcelワークブックを設定します。

2)MS Officeがインストールされていない場合は、このようなワークブックを標準のVBSスクリプトに変換します。

3)Windows/Mac/Linuxに関係なく、すべての人に対してそのようなタスクを実行するPHPページを作成します

私は最初は良い状態にあり、他の人はまだ来ていません。

それまでの間、IMAPサーバーを手動で操作するための便利なコマンドをいくつか紹介します。

接続:

telnet imap.xxxx.yyyy  143 -f log.txt

ログインする:

. login user pass

利用可能なフォルダを一覧表示します。

. list "" *

フォルダ内に移動します。

. select foldername

1から15までのメッセージを削除済みとしてマークします。

. store 1:15 +FLAGS \Deleted

それらはOutlookからかなりリアルタイムで消えます。

上記を元に戻します(マイナス記号):

. store 1:15 -FLAGS \Deleted

(Outlookに表示されます)。

そのようなメッセージをごみ箱フォルダに移動します(そうでない場合、メッセージは表示されず、削除されません):

. move 1:15 trash

実際にメッセージを削除します。

. select trash
. expunge

すべてのコマンドをtelnetウィンドウに貼り付けて、実行させることもできます。

. select inbox
. store 1:15 +FLAGS \Deleted
. move 1:15 trash
. select trash
. expunge

「ブラインド削除」を回避するには、1日から15日までのメッセージの内容を知る必要があります。

. fetch 1:15 ( flags body[header.fields (subject date)])
1
jumpjack

IMAPの受信トレイがほぼいっぱいになると、Thunderbirdの「アーカイブ」操作を使用して、電子メールをIMAPフォルダーからDropboxフォルダーに保存しているローカルフォルダーに手動で移動します。

そのため、IMAPサーバーに最大1 GBの重要な/最近のメールを保存し(携帯電話で利用できるように)、ローカルフォルダーにある他のすべてのアーカイブ(またはコピー)メールはDropboxを介してPC間で同期され、すべてのPCで利用できますThunderbirdがインストールされている(またはポータブルバージョンを使用することもできます)。 (アーカイブされた電子メールのステータスまたはタグを変更すると、他のすべてのインスタンスにもすぐに同期されます。)Dropboxは、問題が発生した場合に備えて、すべてのファイルのバージョン履歴を少なくとも30日間提供します。

ただし、Thunderbirdにはまだ厄介なIMAP移動/アーカイブのバグがあり、オフラインモードで移動操作を行わないとデータが失われる可能性があることに注意してください: https://bugzilla.mozilla.org/show_bug。 cgi?id = 462156

したがって、移動/アーカイブを行うのではなく、手動でコピー/検証/削除する必要があります。

0
broslav

IMAPの代わりにクライアントのPCで、または少なくとも1台のPCでPOP3を使用できます。 POP3はデフォルトですべてのメールをダウンロードし、サーバーでメールが削除されても削除されないため(同期は行わず、メールのみをダウンロードします)、すべてのメールをローカルにダウンロードして、必要に応じて手動で削除できます。 ここ はこの2つのプロトコルの違いです

PC以外のクライアントをIMAPとして使用すると、同期がより便利になり、一部のメールが削除された場合は、POP3を使用するPCで見つけることができます。

0
emirjonb