如果符合条件,则IMAPLIB删除特定的Gmail电子邮件

问题描述

如果符合条件,我正在尝试使用IMAPLIB删除特定的Gmail电子邮件。我可以用它处理一封电子邮件,但我还希望代码在循环中使用该患者的病历ID变量,搜索其中的收件箱,如果发现其中包含该患者ID的其他电子邮件,则将其删除。 / p>

这是我的代码:

import email
import imaplib
import shutil
import os
mail = imaplib.IMAP4_SSL("imap.gmail.com") # Input your IMAP4_SSL domain name
mail.login("username","password") # Email login username,Email login password
mail.select('inbox')
result,data = mail.uid('search',None,"ALL")
inbox_item_list = data[0].split() # Separates out the inbox into a iterable list.
for item in inbox_item_list:
    result2,email_data = mail.uid('fetch',item,'RFC822')
    raw_email = email_data[0][1].decode("utf-8") # yields UTF-8 iterated email data
    email_message = email.message_from_string(raw_email) # converts jumbled output to a readable string (email)
    to_ = email_message['To']
    from_ = email_message['From']
    subject_ = email_message['subject']
    date_ = email_message['date']
    print(raw_email)
    doctor,sep,tail = from_.partition(' <')
    doctor_ = doctor
    patientNam_ = subject_.replace("[Important","")
    patientName_ = patientNam_.replace("]","")
    patientID_ = patientName_[-13::]
    sourceDir_ = '' + patientName_
    destinationDir_ = '' + doctor_
    patientFolderExists_ = os.path.isdir(sourceDir_)
    print("The patient name is: {}".format(patientName_))
    print("Does the PatientFolderExist: {}".format(patientFolderExists_))
    print("The patient ID number is: {}".format(patientID_))
    if patientFolderExists_ is True:
        for part in email_message.walk():
            if part.get_content_type() == 'text/plain':
                lines = part.get_payload().split("\n")
        if ('Important Information' in subject_) & ('Dear' in lines[0]):
            shutil.move(sourceDir_,destinationDir_)
            mail.uid('STORE','+X-GM-LABELS','\\Trash')
            mail.expunge() 
            print("{} deleted and moved!".format(patientName_))
        else:
            print("{} did not meet requirements.".format(patientName_))
    else:
        print("patient folder does not exist,waiting for it..")

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...