4

Imaplib を使用して電子メール アドレスからメッセージを取得しようとしていますが、これまでのところメッセージを取得できましたが、元のメッセージのみに関心があるため、メッセージが「Re:」の場合は不要です。以前のメッセージが欲しいのですが、新しいメッセージだけが欲しいのですが、可能ですか?

私がpythonから得たものはここにあります:

test # 10\r\n\r\nOn Thu, Dec 1, 2011 at 11:17 PM, paulo alvarado\r\n<commonzenpython@gmail.com>wrote:\r\n\r\n> test # 9\r\n>\r\n>\r\n> On Thu, Dec 1, 2011 at 11:15 PM, paulo alvarado <commonzenpython@gmail.com\r\n> > wrote:\r\n>\r\n>> test # 8\r\n>>\r\n>>\r\n>> On Thu, Dec 1, 2011 at 11:14 PM, paulo alvarado <\r\n>> commonzenpython@gmail.com> wrote:\r\n>>\r\n>>> test # 7\r\n>>>\r\n>>> On Thu, Dec 1, 2011 at 10:36 PM, paulo alvarado <\r\n>>> commonzenpython@gmail.com> wrote:\r\n>>>\r\n>>>> test # 6\r\n>>>>\r\n>>>>\r\n>>>> On Thu, Dec 1, 2011 at 10:36 PM, paulo alvarado <\r\n>>>> commonzenpython@gmail.com> wrote:\r\n>>>>\r\n>>>>> test # 5\r\n>>>>>\r\n>>>>>\r\n>>>>> On Thu, Dec 1, 2011 at 9:46 PM, paulo alvarado <\r\n>>>>> commonzenpython@gmail.com> wrote:\r\n>>>>>\r\n>>>>>> this is test # 4\r\n>>>>>>\r\n>>>>>>\r\n>>>>>>\r\n>>>>>> On Thu, Dec 1, 2011 at 7:13 PM, paulo alvarado <\r\n>>>>>> commonzenpython@gmail.com> wrote:\r\n>>>>>>\r\n>>>>>>> this is test # 1\r\n>>>>>>>\r\n>>>>>>\r\n>>>>>>\r\n>>>>>\r\n>>>>\r\n>>>\r\n>>\r\n>\r\n

ご覧のとおり、テスト #10 は新しいメッセージで、他のものは以前の返信です。私は python2.7 を使用しています。

編集

私はチケットアプリケーションを持っているので、基本的に、ユーザーが電子メールでチケットを送信できるようにしたいので、ユーザーの電子メールは作成者、件名はタイトル、メッセージ本文は説明です。すべて機能しています現時点では、ユーザーがメールで返信した場合、チケットの説明には新しい問題 (または応答) だけでなく、以前の問題も含まれるため、返信の処理方法を除いて問題ありません。以前の応答を削除して新しい応答のみを保持する方法があるかどうかを知っています。私の問題の写真をご覧ください。

ご覧のとおり、チケットの説明にはメールの以前の返信が含まれています

4

1 に答える 1

-1

Googleが思いつく

import imaplib
conn = imaplib.IMAP4_SSL(host='mail.example.com')
# or conn =imaplib.IMAP4(host='mail.example.com') for no SSL 
try: 
    (retcode, capabilities) = conn.login('user', 'pass') 
except: 
    # cannot login
conn.select(readonly=1) # Select inbox or default namespace 
(retcode, messages) = conn.search(None, '(UNSEEN)') 
if retcode == 'OK': 
    for message in messages[0].split(' '): 
        print 'Processing :', message 
        (ret, mesginfo) = conn.fetch(message, '(BODY[HEADER.FIELDS (SUBJECT FROM)])') 
        if ret == 'OK': 
            # process message here 
conn.close() 

conn.search(None, '(UNSEEN)')コードの重要な部分はどこですか。

于 2011-12-21T16:46:31.747 に答える