O365-Mail-Manager

前言

我在上一篇博客里面讲说要继续维护O365-Mail-Manager这个项目的,现在可能不能兑现了。

原因

  1. 学业繁重。
  2. 有问题始终无法解决
  3. 这仅仅是一个练手的项目,我在描述中也写了这只是个代码示例。

具体的问题

  1. 无法使用公共客户端流,所以无法隐藏应用机密,这样不安全。
  2. 要加载邮件的全文,需要获取它的ID,而我好像没有找到相应的方法。
  3. 本人是一个新手,很多语法还不会,继续写下去的话,会使代码更加冗乱,便失去了参考意义了。
  4. 我写代码用的电脑经常崩溃。现在有点不敢用它了。

后续步骤

  • 我已在Github上面公布了我的源码,链接在上一篇博客里,欢迎大家接管这个项目,我仍会不定时的去查看大家的建议,或者是拉取请求,我永远对拉取请求开放。
  • 大家也可以看一看我的项目所依赖的一个项目 O365 也在Github 上面,链接在上一篇文章里面有,但是由于我手机贴链接不方便,所以就只能麻烦大家自己去看了。

最后向大家道个歉,由于以上原因,这个项目可能在很长时间内都不会再更新了。但如果以后有机会还会再做的,主要还看大家想不想要?


7.23 10:24

我觉得绝这样把项目扔下来不好,于是在这里贴出源码,Github链接也放出来。

from O365 import Account


class mailbox_actions:
    """用来对邮箱进行操作"""

    def __init__(self, choice=None):
        self.credentials = ('74424fcf-55d7-4e15-99d7-1663c0ba2e94', 'UCDadI4_uwyc.~GYfyG_Ni4pMOT54e.an8')
        # 这是我的应用ID和机密,但是公共客户端流还是没有实现,文档里说下面改为
        # self.account = Account(self.credentials, auth_flow_type=‘pubic')
        # (上面是我的理解)就行了但他报错
        self.account = Account(self.credentials)
        self.choice = choice
        self.scopes = ['basic', 'message_all']  # 请求权限

    def check_if_authenticated(self):
        """检查是否有用户登录,若无,则请求登录"""
        if not self.account.is_authenticated:  # 检查是否登录
            # 请求登录
            self.account.authenticate(scopes=self.scopes)

    def Read_email(self):
        """遍历邮件
        limit 表示加载多少个,微软官方一次API调用只返回999个,
        而O365模块默认25个,只有limit>25时utils分页功能才生效
        batch批处理表示加载多少次,就是往后加载
        limit=2000, batch=10 = limit=2000
        但是分为10次加载。"""

        mailbox = self.account.mailbox()

        inbox = mailbox.inbox_folder()
        for messages in inbox.get_messages(limit=200, batch=100):  # 下面的都是utils分页的
            print(messages)
        for messages in mailbox.junk_folder().get_messages(limit=200, batch=100):
            print(messages)
        for messages in mailbox.deleted_folder().get_messages(limit=200, batch=100):
            print(messages)
        for messages in mailbox.drafts_folder().get_messages(limit=2000):
            print(messages)
        for messages in mailbox.sent_folder().get_messages(limit=2000, batch=10):
            print(messages)

    # 准备加入选择进入哪个文件夹

    def start(self):
        """应用入口"""
        self.choice = input('进入邮箱还是日历?(E/C)')

        if self.choice == 'E':
            self.choice = input('看邮件还是写邮件?(R/W)')
            if self.choice == 'R':
                mailbox_actions().Read_email()
            elif self.choice == 'W':
                print('开发中,请稍后')
            else:
                mailbox_actions().start()
        elif self.choice == 'C':
            print('开发中,敬请期待')
        else:
            mailbox_actions().start()


mailbox_actions().check_if_authenticated()
mailbox_actions().start()

Github项目链接:
O365-Mail-Manager
python-o365感谢此项目!没有它,我的项目也无法实施!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值