我正在使用python中的代码进行工作,该代码应在csv文件(它们与密码一起保存)中搜索所有电子邮件地址,以查找特定的主题。一切正常,但是如果我对搜索指定特定主题,则会遇到很大问题。
这是一行:
类型,数据= mail.search(无,'(不可见)(文本示例)')
如果我删除(例如TEXT),它可以工作,但是我只想搜索与此主题相关的电子邮件...
我找到了一个代码,该代码可以查找具有特定主题的电子邮件,但是我也想使用csv文件中的自动数据使用功能,并且我没有解决将这些功能组合在一起的问题。.::
//////起始码:
import email
import imaplib
import csv
import smtpd
import time
smtp_server = 'imap.arcor.de'
smtp_port = 993
def acccheck():
with open('pipi.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=';')
for row in csv_reader:
readmail(row[0], row[1])
print(row[0], row[1])
def readmail(username, password):
try:
mail = imaplib.IMAP4_SSL(smtp_server)
mail.login(username, password)
mail.select('inbox')
type, data = mail.search(None, '(UNSEEN) (TEXT example)')
mail_ids = data[0]
id_list = mail_ids.split()
for i in reversed(id_list):
type, data = mail.fetch(i, '(RFC822)')
for response_part in data:
if isinstance(response_part, tuple):
msg = email.message_from_string(response_part[1].decode('utf-8', errors='ignore'))
email_subject = msg['subject']
email_from = msg['from']
print('From: ' + email_from)
print('Subject: ' + email_subject + '\n')
except Exception as e:
print('ERROR: ' + str(e))
acccheck()
END CODE ////
错误:
错误:FETCH命令错误:错误[b“ IMAP命令错误FETCH:意外的')'(0.001 + 0.000秒)。”] email_1 pw_1 错误:FETCH命令错误:错误[b“ IMAP命令错误:FETCH错误:意外的')'(0.001 + 0.000秒)。”] 电子邮件_2 pw_2 错误:FETCH命令错误:错误[b“ IMAP命令错误:FETCH错误:意外的')'(0.001 + 0.000秒)。”] email_3 pw_3
答案 0 :(得分:0)
尝试一下:
resp, data = mail.uid('search', None, 'X-GM-RAW', r'"subject:{}"'.format(search_term))
mail_ids = data[0]
id_list = mail_ids.split()
for ID in id_list:
typ, mail_stuff = mail.uid('fetch', ID, '(RFC822)')