我正在使用以下方法从 Gmail 中提取电子邮件:
def getMsgs():
try:
conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)
except:
print 'Failed to connect'
print 'Is your internet connection working?'
sys.exit()
try:
conn.login(username, password)
except:
print 'Failed to login'
print 'Is the username and password correct?'
sys.exit()
conn.select('Inbox')
# typ, data = conn.search(None, '(UNSEEN SUBJECT "%s")' % subject)
typ, data = conn.search(None, '(SUBJECT "%s")' % subject)
for num in data[0].split():
typ, data = conn.fetch(num, '(RFC822)')
msg = email.message_from_string(data[0][1])
yield walkMsg(msg)
def walkMsg(msg):
for part in msg.walk():
if part.get_content_type() != "text/plain":
continue
return part.get_payload()
但是,我收到的一些电子邮件几乎不可能从与编码相关的字符(例如“=”)中提取日期(使用正则表达式),随机落在各种文本字段的中间。这是一个出现在我要提取的日期范围内的示例:
姓名:KIRSTI 电子邮件:kirsti@blah.blah 电话号码:+ 999 99995192 参加人数:4 人,0 名儿童 抵达/离开:10 月 9 日= 2010 年 10 月 13 日 - 2010 年 10 月 13 日
有没有办法删除这些编码字符?