网站地图 | Sitemap | Rss
  • 您当前位置:网站首页 >> Python学习日志 >> Python 收邮件、读邮件、标记已读和删除邮件
  • Python 收邮件、读邮件、标记已读和删除邮件

    iCoA首席特工 逍遥峡谷 发布:2020-01-04 更新:2020-01-04 浏览0条评论
    内容简介

    相关关键词:Python   imbox   收邮件  

    本文链接:https://www.icoa.cn/a/891.html

    本站文章如非注明皆为原创,未经允许禁止转载。如有问题可以给我留言或发邮件。

    使用Python收取邮件同样需要安装一些第三方模块,之前文章Python 第三方模块和安装方法有介绍方法,本文除了上篇发送邮件的文章中用到的 yagmail 模块之外,还会用到 keyring 模块和 imbox 模块。

    首先需要用到 keyring 模块,用来读取邮箱密码

    因为如果直接把邮箱密码放到源文件里,如果源文件不小心分享出去了,就容易泄露你的邮箱密码。而使用 keyring 模块存储密码,这样即便是你写的程序源文件被分享出去,别人也看不到你的密码是什么。

    当然,用keyring 读取密码的前提是,已经在上一篇文章Python 使用 yagmail 模块发送邮件中通过 yagmail 设置好密码了。

    读取之前存储的密码的代码:

    import keyring
    mail_pass = keyring.get_password('yagmail','mymail@163.com')
    # 将 mymail@163.com 邮箱的密码赋值给 mail_pass 变量


    使用 imbox 模块读取邮件

    注意,如果你使用的是网易邮箱的话,需要通过下面地址(把mymail@163.com换成你自己的网易邮箱地址,然后复制到浏览器打开这个网址),激活一下你的IMAP服务,否则无法成功读取邮件。

    http://config.mail.163.com/settings/imap/login.jsp?uid=mymail@163.com
    import keyring
    from imbox import Imbox
    mail_pass = keyring.get_password('yagmail','mymail@163.com')
    with Imbox('imap.163.com','mymail@163.com',mail_pass,ssl=True) as imbox:
        # imap服务器地址,邮箱,密码,是否支持ssl
        all_mails = imbox.messages()
        # 读取收件箱所有信息
        for uid, messages in all_mails:
            print(messages.subject)
            # 输出邮件主题
            print(messages.body['plain'])
            # 输出邮件内容以文本格式

    其中 messages.subject 是邮件主题,下面列出常用的参数,和代表的内容:

    参数内容
    messages.sent_from发件人
    messages.sent_to收件人
    messages.subject邮件主题
    messages.date发送日期
    messages.body['plain']文本格式的正文
    messages.body['html']HTML格式的正文
    messages.attachments附件

    前面代码是读取所有邮件,可以用不同参数分别读取不同类型的邮件。

    读取所有邮件

    imbox.messages()

    读取未读邮件

    imbox.messages(unread=True)

    读取标旗邮件

    imbox.messages(flagged=True)

    读取某个发件人的邮件

    imbox.messages(sent_from='mymail@163.com')

    读取某个收件人的邮件

    imbox.messages(sent_to='mymail@163.com')

    按照日期筛选邮件(注意中间是两个下划线__)

    参数内容
    date__lt某天之前
    date__gt某天之后
    date__on某天
    imbox.messages(date__gt=datetime.date(2019,10,31))


    处理邮件

    将邮件标记已读

    imbox.mark_seen(uid)

    将邮件删除

    imbox.delete(uid)

    比如收取所有未读邮件,并标记已读

    import keyring
    from imbox import Imbox
    mail_pass = keyring.get_password('yagmail','mymail@163.com')
    with Imbox('imap.163.com','mymail@163.com',mail_pass,ssl=True) as imbox:
        # imap服务器地址,邮箱,密码,是否支持ssl
        unread_mails = imbox.messages(unread=True)
        # 读取收件箱所有信息
        for uid, messages in unread_mails:
            title = messages.subject
            sent_from = messages.sent_from
            print(f'收到来自{sent_from}的邮件,邮件主题为:{title}')
            imbox.mark_seen(uid)
            print('已标记为已读')

    更多Python学习日志,点击:Python学习日志目录


    本文链接:https://www.icoa.cn/a/891.html
    关键词: Python   imbox   收邮件  


    如果您愿意支持本站,欢迎点击打赏哦~


    上一篇:Python 函数与函数的自定义

    下一篇:Python 使用 yagmail 模块发送邮件


    - 相关文章 -


    Python 数据分析模块 Pandas 之 DataFrame 数据 - 2020-02-09

    Python 数据分析模块 Pandas 之 Series 数据 - 2020-02-05

    Python 数据分析第三方库 Numpy 的安装和使用 - 2020-02-03

    安装 Scrapy 以及出现 Twisted 安装错误的解决方法 - 2020-01-19

    Python 如何定时执行任务和应用实例 - 2020-01-09

    案例:使用Python 对Excel表格文档进行批量处理 - 2020-01-08

    案例:用 Python 把最近三个月未修改过的文件进行压缩备份 - 2020-01-07

    案例:使用 Python 批量给文件名加序号 - 2020-01-05


    - 文章评论 -




    6045

    [由于政策原因,您的留言如果提交成功后,需要审核才能展示,请改天再来查看,请不要重复提交,谢谢支持!]

    - 最新评论[0条评论] -


    [>>>点击查看更多评论]

    逍遥峡谷 逍遥乱弹 张立博 爱之路 酷品优选 宝贝派

    版权所有©逍遥峡谷 - 星际中央超自然局·地球总部 | 冀ICP备06033848号
    Copyright©Interstellar Central Occult Agency (I.C.O.A)
    本局纯属虚构,如有雷同,纯属巧合
    网络违法犯罪举报