Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python删除Gmail中的特定电子邮件_Python_Email_Imaplib - Fatal编程技术网

使用Python删除Gmail中的特定电子邮件

使用Python删除Gmail中的特定电子邮件,python,email,imaplib,Python,Email,Imaplib,我在运行脚本时不断收到此错误,该脚本假定仅删除来自特定发件人的电子邮件: Traceback (most recent call last): File "/Users/philip/Desktop/Python Projects/email_organizer/eorger.py", line 33, in <module> deleteEmail(email,pwd,imapserver) File "/Users/philip/De

我在运行脚本时不断收到此错误,该脚本假定仅删除来自特定发件人的电子邮件:

Traceback (most recent call last):
  File "/Users/philip/Desktop/Python Projects/email_organizer/eorger.py", line 33, in <module>
    deleteEmail(email,pwd,imapserver)
  File "/Users/philip/Desktop/Python Projects/email_organizer/eorger.py", line 24, in deleteEmail
    typ,data=mail.search(None,'Robinhood@prospectusdocs.com')
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/imaplib.py", line 734, in search
    typ, dat = self._simple_command(name, *criteria)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/imaplib.py", line 1230, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/imaplib.py", line 1055, in _command_complete
    raise self.error('%s command error: %s %s' % (name, typ, data))
imaplib.error: SEARCH command error: BAD [b'Could not parse command']
有什么建议吗?

而且它在

python v3.4.1

或者你可以去


要搜索,您需要告诉它要搜索什么类型的内容,您不能只发送一个简单的字符串。可能
mail.search(无,'FROM'robinhood@....“
。有很多IMAP搜索运算符。您可以在RFC中找到它们的文档。
import imaplib

# your email address
email='test@gmail.com'
# your email password
pwd='************'

# need to input imap server to connect to gmail
imapserver='imap.gmail.com'

def deleteEmail(email,pwd,IMAP):
    mail=imaplib.IMAP4_SSL(IMAP) # connect to server
    mail.login(email,pwd) # user server to login to gmail account

    mail.select('inbox') # selects the 'inbox' to look into
    # search for specific criteria in selected inbox
    typ,data=mail.search(None,'Robinhood@prospectusdocs.com')

    for num in data[0].split():
        mail.store(num,'+FLAGS',r'(\Deleted)')

    mail.expunge()
    mail.close()
    mail.logout()

deleteEmail(email,pwd,imapserver)
import imaplib
import email

m = imaplib.IMAP4_SSL("imap.gmail.com", 993)
m.login("myemail@gmail.com","mypassword")
m.select('"[Gmail]/All Mail"')

result, data = m.uid('search', None, "ALL") # search all email and return uids
if result == 'OK':
    for num in data[0].split():
    result, data = m.uid('fetch', num, '(RFC822)')
    if result == 'OK':
        email_message = email.message_from_bytes(data[0][1])    # raw email text including headers
        print('From:' + email_message['From'])

m.close()
m.logout()
from imap_tools import MailBox, A  
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', 'INBOX') as mailbox:
    # DELETE messages that contains 'Robinhood@mail.xx' in body from INBOX folder
    mailbox.delete(mailbox.fetch(A(body='Robinhood@mail.xx')))