参照大神们的代码写了个读取Gmail邮箱并下载所有附件的脚本,想请问一下是否有办法根据邮件标题的前缀或者附件名称的前缀来决定是否下载此附件?
def get_email_content(message, savepath):
attachments = []
for part in message.walk():
filename = part.get_filename()
if filename:
filename = decode_str(filename)
data = part.get_payload(decode=True)
abs_filename = os.path.join(savepath, filename)
attach = open(abs_filename, 'wb')
attachments.append(filename)
attach.write(data)
attach.close()
return attachments
我们发送邮件,经过应用层–>> 传输层–>> 网络层–>>数据链路层–>>物理层。我们发送附件,也可以按照发送纯文本的模式来做,只不过需要加上一些特殊的标记。
# 首先是xlsx类型的附件xlsxpart = MIMEApplication(open('test.xlsx', 'rb').read())xlsxpart.add_header('Content-Disposition', 'attachment', filename='test.xlsx')msg.attach(xlsxpart)
# jpg类型的附件jpgpart = MIMEApplication(open('beauty.jpg', 'rb').read())jpgpart.add_header('Content-Disposition', 'attachment', filename='beauty.jpg')msg.attach(jpgpart)
# mp3类型的附件mp3part = MIMEApplication(open('kenny.mp3', 'rb').read())mp3part.add_header('Content-Disposition', 'attachment', filename='benny.mp3')msg.attach(mp3part)
这三小段的代码,无非就是使用MIMEApplication进行包装,然后设置一下内容。最后添加到邮件内容搞定。