python从QQ邮箱中读取最新邮件,并以纯文本的方式在控制台显示
import imaplib import email from email.header import decode_header from email.utils import parsedate_to_datetime from html2text import html2text from datetime import datetime IMAP_SERVER = 'imap.qq.com' # 例如: 'imap.gmail.com' IMAP_PORT = 993 # 默认IMAP端口为993 EMAIL_ADDRESS = 'yourname@qq.com' # 你的邮箱地址 EMAIL_PASSWORD = 'xxxxxxxxxxxxxx' # IMAP授权密码 # 创建 IMAP 连接 mail = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT) # 登录邮箱 mail.login(EMAIL_ADDRESS, EMAIL_PASSWORD) # 选择邮箱文件夹 mail.select('INBOX') # 搜索符合条件的邮件 result, data = mail.search(None, 'ALL') # 获取邮件编号列表 email_ids = data[0].split() # 获取最新一封邮件的内容 latest_email_id = email_ids[-1] result, data = mail.fetch(latest_email_id, '(RFC822)') # 解析邮件内容 raw_email = data[0][1] email_message = email.message_from_bytes(raw_email) subject, encoding = decode_header(email_message['Subject'])[0] if isinstance(subject, bytes): subject = subject.decode(encoding if encoding else 'utf-8') print('标题:', subject) print('寄件人:', email_message['From'].encode('utf-8')) print('收件人:', email_message['To']) local_time_str = datetime.fromtimestamp(parsedate_to_datetime(email_message['Date']).timestamp()).strftime('%Y-%m-%d %H:%M:%S') print('日期:', local_time_str) payload = email_message.get_payload(decode=True) text_content = "" if email_message.is_multipart(): # 如果邮件是多部分消息,则递归处理每个部分 for part in email_message.get_payload(): if part.get_content_type() == "text/html": text_content += part.get_payload(decode=True).decode(part.get_content_charset() or 'utf-8') else: text_content = email_message.get_payload(decode=True).decode('utf-8') print('内容:',html2text(text_content)) # 关闭连接 mail.logout() input('Press Enter to exit...')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2010-10-27 通过ADDM进行SQL调优
2010-10-27 谈数据库的性能优化
2010-10-27 java内存查看与分析
2010-10-27 监控长时间运行的查询(监控数据库性能的SQL )
2010-10-27 (转)JDK5.0 利用 jconsole 监测TOMCAT
2010-10-27 (转)使用jetty作为嵌入式web容器(部署war文件)
2010-10-27 ASH Report For AWDDB/awddb