福田网站建设乐云seo,网站错误404,重庆建设工程信息官网,如何做网站首页图配置邮箱、读取基本的邮件内容请参考#xff1a;python读取并解析邮箱邮件#xff0c;读取邮件主题、内容、时间
以excel为例#xff1a;
获取邮件#xff1a; email_value_config {imap_server: imap.exmail.qq.com, username: xxxxxxxx.com, password: xxxxx, }# 连接…配置邮箱、读取基本的邮件内容请参考python读取并解析邮箱邮件读取邮件主题、内容、时间
以excel为例
获取邮件 email_value_config {imap_server: imap.exmail.qq.com, username: xxxxxxxx.com, password: xxxxx, }# 连接到邮箱服务器email_server imaplib.IMAP4_SSL(email_value_config[imap_server]) # 这样就已经链接到目标邮箱了email_server.login(email_value_config[username], email_value_config[password]) # 这里登录email_server.select(INBOX)提取数据需要使用 part.get_payload(decodeTrue)写入本地文件时使用 file_name str(email.header.make_header(email.header.decode_header(part.get_filename()))) # 直接解析文件名文件名会是balabala.xlsxwith open(file_name, wb) as save_file:save_file.write(part.get_payload(decodeTrue))示例代码
import imaplib
import email
from loguru import loggerdef parse_body(message):解析邮件/信体for part in message.walk():if not part.is_multipart(): # 这里要判断是否是multipart用来判断附件是一个message列表file_name part.get_filename() # 附件需要有文件名if file_name:file_name str(email.header.make_header(email.header.decode_header(part.get_filename()))) # 直接解析文件名如果是excel会在文件名中以.xlsx或.xls为后缀if not ((.xls in file_name) or (.xlsx in file_name)): # 根据后缀判断附件是一个excelcontinuelogger.debug(f准备保存文件 {file_name})with open(file_name, wb) as save_file: # 这里就是写入文件了save_file.write(part.get_payload(decodeTrue))logger.success(f保存excel完成 {file_name})def main():email_value_config {imap_server: imap.exmail.qq.com, username: xxxxxxxx.com, password: xxxxx, }# 连接到邮箱服务器email_server imaplib.IMAP4_SSL(email_value_config[imap_server]) # 这样就已经链接到目标邮箱了email_server.login(email_value_config[username], email_value_config[password]) # 这里登录email_server.select(INBOX)# 选择收件箱_typ, _search_data email_server.search(None, ALL)# 开始解析mailidlist _search_data[0].split() # 转成标准列表,获得所有邮件的IDprint(f一共解析邮件数量{len(mailidlist)})# 解析内容for mail_id in mailidlist:result, data email_server.fetch(mail_id, (RFC822)) # 通过邮件id获取邮件email_info email.message_from_bytes(data[0][1]) # 邮件内容未解析parse_body(email_info)email_server.close()email_server.logout()if __name__ __main__:main()