import random
import imaplib
import email #导入两个库
conn = imaplib.IMAP4_SSL(port='993', host="imap.qq.com") #143不好使
print('已连接服务器')
conn.login("3XXXX@qq.com", "XXXXXX") #这里是“授权码”,不是邮箱登录密码
print('已登陆')
result, message = conn.select()
#print(result, message)
typ, data = conn.search(None, 'ALL') #"ALL" /"UNSEEN"
#print(typ, data)
newslist=data[0].split()
#print('newslist', newslist)
#随机找一个邮件测试代码
max_num = len(newslist)
print(max_num)
num = random.randint(0, max_num)
print(num)
typ, data = conn.fetch(b'%d'%num, '(RFC822)') #不是直接num,而是b'%d'%num
try:
msg = email.message_from_string(data[0][1].decode("utf-8"))
except:
msg = email.message_from_string(data[0][1].decode("gbk"))
#获取标题
sub = msg.get('subject')
print(sub)
#解析标题
try:
subdecode = email.header.decode_header(sub)[0][0]
try:
print(subdecode.decode('utf-8'))
except:
print(subdecode.decode("gbk"))
except:
print("标题无法解析")
pass
#解析内容
try:
for part in msg.walk():
if not part.is_multipart():
try:
print(part.get_payload(decode=True).decode("utf-8"))
except:
print(part.get_payload(decode=True).decode("gbk"))
except:
print("内容无法解析")
pass
Python邮箱收取邮件
最新推荐文章于 2024-02-22 09:06:17 发布