質問

長い話を短くすれば、作成した新しいgmailアカウントとリンクその他複数の勘定でそれぞれ1000番台のメッセージ)っている場合は、それに合わせたインポートすべての輸入のメッセージが到着して未読が必要としているとして登場します。

私の経験の少ないpython、私は使用メールimaplibモジュールメール送信、処理ます。

があるので、バルク処理の全ての項目受信トレイでマークメッセージ以上を指定した日まで。

役に立ちましたか?

解決

typ, data = M.search(None, '(BEFORE 01-Jan-2009)')
for num in data[0].split():
   M.store(num, '+FLAGS', '\\Seen')

これがために imaplibドキュメントページ内のコードのわずかな変更であります店舗方法。私は RFC 3501 のから使用する検索条件を発見しました。これはあなたが始める必要があります。

他のヒント

に基づくフィリップ-藤の答えは、上 RFC3501RFC2822, "私たちのた一行のコードをマークメール以上前の10日間として読み出します。静的なリストを用いて、月の省略名です。これは、特に優雅だが、Pythonのコマーシャルペーパーフォーマット文字列がロケール依存性ついて不快な驚くことで生きています。すべてのIMAPコマンドのUIDます。

import imaplib, datetime

myAccount = imaplib.IMAP4(<imapserver>)
myAccount.login(<imapuser>, <password>)
myAccount.select(<mailbox>)

monthListRfc2822 = ['0', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
                    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
beforeDate = datetime.datetime.today() - datetime.timedelta(days = 10)
beforeDateString = ("(BEFORE %s-%s-%s)"
                    % (beforeDate.strftime('%d'),
                       monthListRfc2822[beforeDate.month],
                       beforeDate.strftime('%Y')))
typ, data = myAccount.uid('SEARCH', beforeDateString)
for uid in data[0].split():
    myAccount.uid('STORE', uid, '+FLAGS', '(\Seen)')

による方法:わからないので、なぜ"-"あったとして使用される日付の区切り文字の検索文字列に私の場合、dovecot IMAPサーバ).ってくるということになるよう矛盾は、RFC2822.しかし、簡単に空白文字と区切り文字のみを返IMAPます。

だけではなく、IMAPインタフェースを使用していない理由を私たちのHTMLを解析してみては?標準のメールクライアントにそれをフックしてからちょうどソート日付で、あなたが読むようしたい方のものをマークします。

ちょうどその読み取りとして、すべてのマークを選択し、日付で高度な検索を行うには、Gmailのウェブインターフェースに行きます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top