Python で imaplib を使用して、受信トレイまたは GMail ラベルの内容を取得しています。
私の問題は次のとおりです。imaplib は、受信トレイを照会しているときに UID を返しますが、メール ラベルは返しません。
受信トレイにクエリを実行すると、UID が取得されます。
inbox EMAIL_UIDS: 24408 24599 25193 25224 25237 25406 25411 25412 25413 25415
しかし、ラベル「New」(受信トレイに 2 つのメッセージが含まれているため、上記の UID が 2 つ含まれている必要があります) をクエリすると、順序付けられたインデックスのみが取得されます。
New EMAIL_UIDS: 1 2
私のコードは次のとおりです。
#Main file
if folder_name is None:
email_uids = obtain_inbox_email_uids(mail)
else:
email_uids = obtain_folder_email_uids(folder_name,mail)
email_uids = list(email_uids)
と:
#Email utilities file
def obtain_folder_email_uids(folder_name, mail):
"""
Given an IMAP instance,
return the UIDs of the emails in a specific folder.
"""
mail.select(folder_name)
result, data = mail.uid('search', None, "ALL")
print "RESULT, DATA",result,data
email_uids = data[0]
print folder_name,"EMAIL_UIDS:",email_uids
email_uids = email_uids.split(" ")
email_uids = reversed(email_uids)
return email_uids
def obtain_inbox_email_uids(mail):
"""
Given an IMAP instance,
return the UIDs of the inbox emails.
"""
return obtain_folder_email_uids('inbox', mail)
imaplib が受信トレイの UID を返すのに、特定のラベルの順序付けられたインデックスを返す理由と、UID を返す方法を知っている人はいますか?
ありがとうございました