返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用Python自动化管理Exchange邮箱
  • 148
分享到

怎么用Python自动化管理Exchange邮箱

2023-06-15 14:06:02 148人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“怎么用python自动化管理Exchange邮箱”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python自动化管理Exchange邮箱”吧!Python是一种解释型、交

本篇内容主要讲解“怎么用python自动化管理Exchange邮箱”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python自动化管理Exchange邮箱”吧!

Python是一种解释型、交互式、面向对象编程语言,不但简单、开源、可移植,而且拥有丰富的Python官方和第三方类库。这些类库的底层代码不一定都是Python,还有很多C/C++的身影。通过C/c++语言实现的代码可以在Python中被调用。所以Python也被称为“胶水语言”。基于Python的强大类库,我们可以实现诸如web开发,自动化管理,数据分析机器学习等各种功能。今天我要介绍的是如何借助Python的Exchangelib库轻松实现Exchange邮箱的自动化管理。重点介绍邮箱中的邮件数据和会议日程\日历的在Python中的自动化管理操作。

Exchange是微软的企业级邮件服务系统,本地Exchange版本目前最新的是Exchange2019。随着云服务的不断发展,用户群体也越来越庞大。很多用户转而使用Exchange  Online服务或者将本地Exchange与Exchange Online进行混合部署。本文的实现代码和案例对本地的Exchange和Exchange  Online邮箱都是适用的。

Exchangelib是一个强大的Exchange客户端Python库。它实现了Exchange邮箱的对象关系映射。  Exchangelib库对邮箱的管理操作是通过EWS (Exchange WEB Service)  来实现的。EWS是Exchange邮箱的接口服务。EWS集成了原来WebDAV和CODEX的功能,基于SOAP协议。这使它可以被发送https请求的任何操作系统远程访问。EWS是非常高效的Exchange资源访问接口。

在开始之前,我们首先在CMD中运行命令pip来安装Exchangelib库(pip是Python的包管理工具):pip install  exchangelib。

接下来导入exchangelib和datetime等类库:

from exchangelib import Message,Credentials,Account,htmlBody,Mailbox  from exchangelib import EWSTimeZone,EWSDateTime  import datetime as dt

1.1邮件发送的实现如下: 

#将邮箱的帐号和密码等信息赋值给account  credentials = Credentials("","")  account = Account(',credentials=credentials,autodiscover=True)  #html中包含的是HTML格式的邮件内容  html = 'Hello World!'  #在message中配置帐号 邮件标题 内容 收件人等信息  message = Message(  account=account,  subject="For Test",  body=HTMLBody(html),  to_recipients=('',),  )  #发送邮件  message.send()

1.2邮件获取的实现如下: 

#获取本地时区  tz = EWSTimeZone.localzone()  #获取某一时间段内的邮件内容;比如获取日期为3/27/2021的所有邮件。首先指定时区,然后创建时区相关的时间日期类实例。如果邮件位于收件箱Inbox的子文件夹中,可以如下所示将替换为子文件夹的名字  items = (account.inbox/'').all().filter(datetime_received__range=(  dt.datetime(2021, 3, 27, 0, 0, 0, 0, tz),  dt.datetime(2021, 3, 27, 23, 59, 59, 0, tz)  ))  如果想取前100封邮件,可以使用如下命令:  items = (account.inbox/'Reports').all().order_by('-datetime_received')[0:100]

1.3邮件转发的实现如下:

items[0].forward(subject='FWD:%s'%items[0].subject, body=Items[0].body, to_recipients=('',))

1.4邮件删除的实现如下: 

items[0].delete()#完全删除  items[0].soft_delete()#软删除 可恢复  to_folder = account.root/'Top of InfORMation Store'/'Deleted Items'  items[0].move(to_folder)#移动到已删除文件夹

通过以上的学习,我们知道了通过Python操作Exchange邮箱的基本方法。下面举一个简单的自动化管理邮箱的例子:比如实现对特定种类的邮件进行自动回复。

#获取最近一天的未读邮件  today = dt.datetime.today()  day = dt.timedelta(days=1)  from_date = today - day  tz = EWSTimeZone.localzone()  tz_time = from_date.replace(tzinfo=tz)  items = account.inbox.filter(is_read=False, datetime_received__gte=tz_time)  #针对包含指定标题内容来自指定用户的邮件进行自动回复。比如自动批示等等。  Filter_items = items.filter(subject__contains='xxx', sender='XXX@XXX.com')  for item in Filter_items:  Items[0].reply_all(  subject='’,  body='xxx'  )

通过Python不但可以对邮件数据进行自动化操作,还可以对日历,任务,联系人等进行管理。接下来我们来看一下通过Python如何对邮箱中的会议日程\日历进行自动化管理。首先我们导入Exchangelib中的日历相关模块。CalendarItem类允许您发送您发起的会议请求或取消之前已经安排的会议。还可以处理接收到的MeetingRequest消息。您可以使用AcceptItem、TentativelyAcceptItem和DeclineItem类答复这些消息。

from exchangelib import CalendarItem  from exchangelib.items import MeetingRequest, MeetinGCancellation,SEND_TO_ALL_AND_SAVE_COPY

2.1会议日程创建的实现如下: 

# EWSTimeZone.localzone()用来获取本地的时区信息 便于将日期转换成本地时区的日期  tz = EWSTimeZone.localzone()  # CalenderItem用来准备会议日程的信息:比如开始时间和结束时间,主题,会议邀请正文,参会人等等  item = CalendarItem(  account=account,  folder=account.calendar,  start=dt.datetime(2021, 4, 15, 11, 0, 0, 0, tz),  end=dt.datetime(2021, 4, 15, 12, 0, 0, 0, tz),  subject="For Test",  body="meeting test",  required_attendees=['xxx@xxx.com,'xxx@xxx.com']  )  # item.save()用来发送会议邀请邮件  item.save(send_meeting_invitations=SEND_TO_ALL_AND_SAVE_COPY)

2.1会议日程获取的实现如下: 

# 比如我们要获取某一天内的所有会议日程  calendars = account.calendar.all().filter(datetime_received__range=(  dt.datetime(2021, 4, 14, 23, 59, 59, 0, tz),  dt.datetime(2021, 4, 15, 23, 59, 59, 0, tz)  ))  # 将会议日程的标题打印输出并查看  for calendar in calendars:  print(calendar.subject)

2.2会议日程取消的实现如下:

# 取消邮件标题为'For  Test'的会议日程。取消命令为“calendar.cancel()”。calendar.subject.find()用来进行关键字查找,用于查找对应的邮件项。

for calendar in calendars:  if calendar.organizer.email_address == account.primary_smtp_address and calendar.subject.find('For Test') >= 0:  calendar.cancel()

2.2自动接收会议邀请的实现如下:

#  通过对收件箱邮件的过滤,得到会议邀请邮件。然后针对该类型邮件可以按照如下操作接受会议邀请,拒绝会议邀请,暂时接受会议邀请。Body中可以我定义回复的邮件正文内容。

for item in items:  if isinstance(item,MeetingRequest):  item.accept(body="Accpeted")#接受会议邀请  item.decline(body="sorry, I have no time")#拒绝会议邀请  item.tentatively_accept(body="I'll join if I'm free at that time")#暂时接受会议邀请

实际上Exchange邮箱里的数据,不管是日历还是邮件都是基于文件夹结构的。我们可以通过命令”print(account.root.tree())”来查看邮箱的目录结构。

通过对以上的介绍,相信大家已经能够掌握基于Python的邮箱和日历的基本操作方法。在实际的自动化应用中,我们可以基于不同需求来进行定向开发。基于不同的条件自动化处理相应的数据。

在IT运维中,可以基于我们以上的知识点来获取指定类型邮件,提取邮件关键信息进行自动处理或者汇总起来以邮件报告的形式自动发送出来以供查看。这些都是非常好的自动化应该场景。在日常办公中,也可以基于我们针对会议日程的知识点来实现自动化处理会议邀请邮件,定期删除或者存档日历信息等操作。

到此,相信大家对“怎么用Python自动化管理Exchange邮箱”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用Python自动化管理Exchange邮箱

本文链接: https://lsjlt.com/news/280522.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用Python自动化管理Exchange邮箱
    本篇内容主要讲解“怎么用Python自动化管理Exchange邮箱”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python自动化管理Exchange邮箱”吧!Python是一种解释型、交...
    99+
    2023-06-15
  • 怎么用Python自动化管理邮件
    本篇内容主要讲解“怎么用Python自动化管理邮件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python自动化管理邮件”吧!如果你来不及看,至少需要了解下面几个概念为了体现通用性,这次...
    99+
    2023-06-15
  • python+opencv+selenium如何实现自动化登录邮箱
    这篇文章主要为大家展示了“python+opencv+selenium如何实现自动化登录邮箱”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python+opencv+selenium如何实现自动...
    99+
    2023-06-20
  • Java Mail电子邮件自动处理:实现电子邮件自动化管理
    Java Mail电子邮件自动处理概述 Java Mail电子邮件自动处理是一个强大且灵活的框架,可用于处理和管理电子邮件。它提供了对电子邮件协议(如SMTP、POP3和IMAP)的访问,以及丰富的功能,例如电子邮件解析、附件处理和错误...
    99+
    2024-02-05
    Java Mail 电子邮件自动化 SMTP POP3 IMAP
  • 怎么用bat批处理实现163邮箱自动登陆
    这篇文章将为大家详细讲解有关怎么用bat批处理实现163邮箱自动登陆,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先,创建一个文本文件,比如 163.mail.txt, 在txt文件中写入下面内容,保存...
    99+
    2023-06-08
  • Python如何实现报表自动化和自动发送到目的邮箱
    本文小编为大家详细介绍“Python如何实现报表自动化和自动发送到目的邮箱”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现报表自动化和自动发送到目的邮箱”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-06
  • Python自动化办公小程序:实现报表自动化和自动发送到目的邮箱
    大家好!我是虎哥。项目背景作为数据分析师,我们需要经常制作统计分析图表。但是报表太多的时候往往需要花费我们大部分时间去制作报表。这耽误了我们利用大量的时间去进行数据分析。但是作为数据分析师我们应该尽可能去挖掘表格图表数据背后隐藏关联信息,而...
    99+
    2023-05-14
    Python 报表自动化 邮箱
  • Python中怎么自动化读取邮件
    这篇文章将为大家详细讲解有关Python中怎么自动化读取邮件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、poplib库poplib 模块提供了 poplib.POP3 和 poplib...
    99+
    2023-06-15
  • 基于Python实现报表自动化并发送到邮箱
    目录项目背景一、报表自动化目的二、报表自动化范围三、实现步骤第一步:读取数据源文件第二步:DataFrame计算第三步:自动发送邮件项目背景 作为数据分析师,我们需要经常制作统计分析...
    99+
    2024-04-02
  • Python怎么实现发送邮件到自己邮箱
    1、缘由在日常开发中,我们经常需要监控应用程序的状态,及时发现问题并采取措施解决。而通过邮件发送报警信息则是一种常见的实现方式。2、设置SMTP服务器登录到QQ邮箱后台然后点击账户找到“POP3/SMTP服务”和“IMAP/SMTP服务”项...
    99+
    2023-05-14
    Python
  • 如何使用Python邮箱自动群发工资条
    这篇文章给大家介绍如何使用Python邮箱自动群发工资条,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发...
    99+
    2023-06-15
  • Python怎么实现自动化发送邮件
    这期内容当中小编将会给大家带来有关Python怎么实现自动化发送邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚...
    99+
    2023-06-26
  • python+opencv+selenium自动化登录邮箱并解决滑动验证的问题
    前言 大家做自动化登录时可能都遇到过滑块验证码需要手动验证的问题,这次我们就来解决他 如下:    在我们做自动化登录时,总会遇到各种奇奇怪怪的验证码,滑块验证码就是其中最常见的一种。若...
    99+
    2022-06-02
    python selenium滑动验证 python opencv selenium自动化登录邮箱
  • 怎么用Python自动群发邮件
    这篇文章主要讲解了“怎么用Python自动群发邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python自动群发邮件”吧!如何把收件人名字一一对应前提条件,我的解释器是 IDLE ...
    99+
    2023-06-16
  • 怎么用Ansible自动化管理Ubuntu服务器
    使用Ansible自动化管理Ubuntu服务器的步骤如下: 安装Ansible:在控制节点上安装Ansible,并确保能够连接到...
    99+
    2024-04-28
    Ubuntu Ansible
  • 使用python怎么扫描web邮箱
    这篇文章给大家介绍使用python怎么扫描web邮箱,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。基本思路我们向工具传入目标站点之后,首先要对输入进行一个基本的检查和分析,因为我们会可能会传入各种样式的地址,比如htt...
    99+
    2023-06-14
  • Python中怎么实现电子邮件的自动化
    这期内容当中小编将会给大家带来有关Python中怎么实现电子邮件的自动化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。用Python下载文件对于第一步,我们将需要使用HTTP请求实际下载数据文件。在本例中...
    99+
    2023-06-16
  • python自动化管理mysql主从同步
    mysql多实例1.my.cnf通过定义mysqldconfig类   mysqld_vars = {}  从里面获得很多配置文件相关参数写入字典mysql.py2.init DB初始化数据库3.修改权限4.rc脚本启动5.check 检查...
    99+
    2023-01-31
    主从 python mysql
  • Java自动装箱、自动拆箱与Integer缓存怎么使用
    今天小编给大家分享一下Java自动装箱、自动拆箱与Integer缓存怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1...
    99+
    2023-06-30
  • Python怎么控制手机摄像头拍照并自动发送到邮箱
    本文小编为大家详细介绍“Python怎么控制手机摄像头拍照并自动发送到邮箱”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么控制手机摄像头拍照并自动发送到邮箱”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作