weixin_44595896 2019-01-31 16:19 采纳率: 40%
浏览 1464

Python可以实现按附件前缀检索下载邮箱的附件吗

参照大神们的代码写了个读取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
  • 写回答

2条回答 默认 最新

  • cjq7177 2019-01-31 16:49
    关注

    我们发送邮件,经过应用层–>> 传输层–>> 网络层–>>数据链路层–>>物理层。我们发送附件,也可以按照发送纯文本的模式来做,只不过需要加上一些特殊的标记。
    # 首先是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进行包装,然后设置一下内容。最后添加到邮件内容搞定。

    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献