Python 使用office365邮箱的示例

 更新时间:2020年10月29日 16:01:34   作者:py3study  
这篇文章主要介绍了Python 使用office365邮箱的示例,帮助大家利用python进行高效办公,感兴趣的朋友可以了解下

一、概述

最近遇到一个需求,需要使用office365邮箱发送邮件,使用SSL发送会失败,必须使用TLS加密协议才能发送成功。

二、完整代码

使用类封装了一下,功能如下:

1. 支持附件

2. 支持多个发件人

3. 执行TLS

MailTools.py

#!/usr/bin/env python3
# coding: utf-8


import smtplib # 加载smtplib模块
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import time

class SendMail(object):
  def __init__(self,sender,title,content):
    self.sender = sender #发送地址
    self.title = title # 标题
    self.content = content # 发送内容
    self.sys_sender = 'xx@office365.com' # 系统账户
    self.sys_pwd = '123456' # 系统账户密码

  def send(self,file_list):
    """
    发送邮件
    :param file_list: 附件文件列表
    :return: bool
    """
    try:
      # 创建一个带附件的实例
      msg = MIMEMultipart()
      # 发件人格式
      msg['From'] = formataddr(["", self.sys_sender])
      # 收件人格式
      msg['To'] = formataddr(["", self.sender])
      # 邮件主题
      msg['Subject'] = self.title

      # 邮件正文内容
      msg.attach(MIMEText(self.content, 'plain', 'utf-8'))

      # 多个附件
      for file_name in file_list:
        print("file_name",file_name)
        # 构造附件
        xlsxpart = MIMEApplication(open(file_name, 'rb').read())
        # filename表示邮件中显示的附件名
        xlsxpart.add_header('Content-Disposition','attachment',filename = '%s'%file_name)
        msg.attach(xlsxpart)

      # SMTP服务器
      server = smtplib.SMTP("smtp.office365.com", 587,timeout=10)
      server.ehlo()
      server.starttls()
      # 登录账户
      server.login(self.sys_sender, self.sys_pwd)
      # 发送邮件
      server.sendmail(self.sys_sender, [self.sender, ], msg.as_string())
      # 退出账户
      server.quit()
      return True
    except Exception as e:
      print(e)
      return False

if __name__ == '__main__':
  # 发送地址
  sender = "12345678@qq.com"
  # 标题
  title = "测试告警"
  # 开始时间
  start_time = time.strftime('%Y-%m-%d %H:%M:%S')
  ip = "xx.xx.xx.xx"
  # 发送内容
  content = "{} ip: {} 掉线".format(start_time,ip)
  # 附件列表
  file_list = []
  ret = SendMail(sender, title, content).send(file_list)
  print(ret,type(ret))

注意:请根据实际情况,修改邮件账号和密码。

以上就是Python 使用office365邮箱的示例的详细内容,更多关于python 使用office邮箱的资料请关注脚本之家其它相关文章!

相关文章

  • Windows下Anaconda下载安装与配置教程分享

    Windows下Anaconda下载安装与配置教程分享

    这篇文章主要介绍了Windows下Anaconda下载安装与配置教程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Python判断变量是否是None写法代码实例

    Python判断变量是否是None写法代码实例

    这篇文章主要介绍了Python判断变量是否是None写法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • ID3决策树以及Python实现详细过程

    ID3决策树以及Python实现详细过程

    决策树是我本人非常喜欢的机器学习模型,非常直观容易理解,并且和数据结构的结合很紧密,下面这篇文章主要给大家介绍了关于ID3决策树以及Python实现的相关资料,需要的朋友可以参考下
    2024-01-01
  • Django如何开发简单的查询接口详解

    Django如何开发简单的查询接口详解

    这篇文章主要给大家介绍了使用Django如何开发简单的查询接口的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Django具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Python递归调用实现数字累加的代码

    Python递归调用实现数字累加的代码

    今天小编就为大家分享一篇Python递归调用实现数字累加的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 详解python解压压缩包的五种方法

    详解python解压压缩包的五种方法

    这里讨论下使用Python解压五种压缩文件,.gz .tar .tgz .zip .rar的相关知识,文中给大家介绍了python实现rar文件解压的方法,感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • 基于Python实现捕获,播放和保存摄像头视频

    基于Python实现捕获,播放和保存摄像头视频

    这篇文章主要为大家分享一下Python操作视频最基本的操作,包括读取和播放视频和保存视频。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-04-04
  • Python中xmltodict模块对XML的用法详解

    Python中xmltodict模块对XML的用法详解

    这篇文章主要介绍了Python中xmltodict模块对XML的用法详解,xmltodict 是一个用来处理xml数据的很方便的模块,包含两个常用方法parse和unparse,本文通过代码介绍了用法,需要的朋友可以参考下
    2023-07-07
  • 可能是史上最细的python中import详解

    可能是史上最细的python中import详解

    import在python中的意思是用来调用模块的,下面这篇文章主要给大家介绍了关于python中import详解的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • Python爬虫实现抓取电影网站信息并入库

    Python爬虫实现抓取电影网站信息并入库

    本文主要介绍了利用Python爬虫实现抓取电影网站信息的功能,并将抓取到的信息入库。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-02-02

最新评论