[转帖]利用Python调用outlook自动发送邮件

利用,python,调用,outlook,自动,发送,邮件 · 浏览次数 : 0

小编点评

**Python 发送邮件两种方式:smtp 和 Outlook** **smtp 模式** ```python import win32com.client as win32outlook = win32.Dispatch('outlook.application') # 设置收件人邮箱地址 mail.To = '12345@qq.com' # 设置邮件主题 mail.Subject = 'test1' # 设置邮件正文 mail.Body = '这是一封测试邮件' # 设置邮件重要性 mail.Importance = 2 # 添加附件 mail.Attachments.Add(r'C:\\Users\\Desktop\\测试.xlsx') # 发送邮件 mail.Send() ``` **Outlook 模式** ```python import win32com.client as win32outlook = win32.Dispatch('outlook.application') # 设置收件人邮箱地址 mail.To = '12345@qq.com' # 设置邮件主题 mail.Subject = 'test1' # 设置邮件正文 mail.Body = '这是一封测试邮件' # 设置邮件格式 mail.BodyFormat = 2 # 使用 HTML 格式 # 插入图片 mail.HTMLBody = """ <div><img src='测试.jpg' /></div> """ # 发送邮件 mail.Send() ``` **注意** * 使用 `smtp` 模式需要安装 `win32com` 模块。 * 使用 `Outlook` 模式需要安装 `win32com` 模块和 `pywin32` 模块。 * 在发送邮件之前,请确保您的 Python 版本符合邮件服务器的兼容要求。

正文

↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓
在这里插入图片描述

使用Python发送邮件有两种方式,一种是使用smtp调用邮箱的smtp服务器,另一种是直接调用程序直接发送邮件。而在outlook中我们一般是没有权限去开启smtp服务的,所以一般只能通过第二种直接调用方式发送邮件

基础版本–能自动发送就是成功

利用Python使用Outlook自动发送邮件,代码及注释如下:

import win32com.client as win32

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = '12345@qq.com' #收件人
mail.CC = '12345678@qq.com' # 抄送人
#mail.Bcc='12345678@qq.com' #密抄收件人
mail.Subject = 'test1' #邮件主题
mail.Body = '这是一封测试邮件' #邮件正文
mail.Importance = 2 #设置重要性为高
mail.Attachments.Add(r'C:\Users\Desktop\测试.xlsx') #添加附件
mail.Send() #发送

    添加多个附件

    如果需要添加多个附件,则直接使用多次的 .Attachments.Add即可

    import win32com.client as win32
    

    outlook = win32.Dispatch('outlook.application')
    mail = outlook.CreateItem(0)
    mail.To = '12345@qq.com' #收件人
    mail.Subject = 'test1' #邮件主题
    mail.Body = '这是一封多附件测试邮件' #邮件正文
    mail.Attachments.Add(r'C:\Users\Desktop\测试.xlsx') #添加附件
    mail.Attachments.Add(r'C:\Users\Desktop\测试2.txt') #添加第二个附件
    mail.Send() #发送

      选择发送邮箱/账号

      自动发送默认使用outlook中的默认邮箱,但是我们的outlook邮箱可能除了我们自己的邮箱账号外还有其他的账号,例如公共邮箱。只要设定一下.SentOnBehalfOfName即可:

      import win32com.client as win32
      

      outlook = win32.Dispatch('outlook.application')
      mail = outlook.CreateItem(0)
      mail.SentOnBehalfOfName = 'accoumt2@outlook.com' #选择发送邮箱,只需要修改对应使用的邮箱/账号地址即可
      mail.To = '12345@qq.com' #收件人
      mail.Subject = 'test1' #邮件主题
      mail.Body = '这是一封测试邮件' #邮件正文

      mail.Send() #发送

        修改正文格式

        如果需要修改正文中的字体,则需要在正文中使用HTML格式调整,代码示例如下:

        import win32com.client as win32
        

        outlook = win32.Dispatch('outlook.application')

        mail = outlook.CreateItem(0)
        mail.To = '201304056@qq.com' #收件人
        mail.Subject = 'test' #邮件主题
        mail.Body = '这是一封测试邮件' #邮件正文
        mail.BodyFormat = 2 # 2表示使用Html format,可以调整格式等
        mail.HTMLBody = '''<H2>致尊敬的收件人</H2><BR>
        <FONT SIZE=4>请注意<BR>
        这是一封<Font Face=Times Roman Size=4.5 Color=blue>测试邮件</font>并且<Font Face=Times Roman Size=4.5 Color=red>没有附件</font>。<BR>'''

        mail.Display() #显示发送邮件界面
        mail.Send() #发送

          其中正文中的HTML标签含义如下:

          <H2>   </H2>标签: 在Html语句中<h1> - <h6> 标签可定义标题。<h1> 定义最大的标题。<h6> 定义最小的标题。
          <br> 标签:插入一个换行符
          <font>标签: 规定文本的字体、字体尺寸、字体颜色。例如示例中的<Font Face=Times Roman Size=4.5 Color=blue>
          

            其他格式,例如加粗,斜体等都可以使用特定的HTML标签实现,具体百度即可。

            插入图片

            如果需要在正文中插入图片的话则需要先插入图片附件,然后利用HTML将图片插入到正文中

            import win32com.client as win32
            outlook = win32.Dispatch('Outlook.Application')
            mail = outlook.CreateItem(0)
            

            mail.To = '12345@qq.com'
            mail.Subject ='test'
            mail.BodyFormat = 2
            mail.Attachments.Add(r"C:\Users\测试.jpg") # 先把要插入的图片当作一个附件添加
            mail.Attachments.Add(r"C:\Users\测试表格.xlsx") # 添加正常的附件
            mail.HtmlBody = "<div><img src='测试.jpg' /></div>" # 然后在htmlbody里面调用这个图片,就可以进入到正文里面了

            mail.Display()
            mail.Send()

              VBA使用Outlook自动发送邮件

              文章知识点与官方知识档案匹配,可进一步学习相关知识
              Python入门技能树基本技能发送邮件289594 人正在系统学习中

              与[转帖]利用Python调用outlook自动发送邮件相似的内容:

              [转帖]利用Python调用outlook自动发送邮件

              ↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 使用Python发送邮件有两种方式,一种是使用smtp调用邮箱的smtp服务器,另一种是直接调用程序直接发送邮件。而在outlook中我们一般是没有权限去开启smtp服务的,所以一般只能通过第二种直接调用方式发送邮件 基础版本–

              [转帖]利用Python调用outlook自动发送邮件

              ↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 使用Python发送邮件有两种方式,一种是使用smtp调用邮箱的smtp服务器,另一种是直接调用程序直接发送邮件。而在outlook中我们一般是没有权限去开启smtp服务的,所以一般只能通过第二种直接调用方式发送邮件 基础版本–

              [转帖]【Python】计算程序运行时间的方法总结

              一、第一种方法 利用time包: import time def test(): start_time = time.time() # 记录程序开始运行时间 s = 0 for i in range(1000000): s += 1 end_time = time.time() # 记录程序结束运行

              [转帖]TiDB Lightning 在数据迁移中的应用与错误处理实践

              TiDB Lightning 在数据迁移中的应用与错误处理实践 作者简介:DBA,会点 MySQL,懂点 TiDB,Python。 个人主页:https://tidb.net/u/seiang/answer ,希望随着自己在 TiDB 上的成长,后续的主页内容越来越丰富。 俗话说:工欲善其事,必先利

              [转帖]利用 libpcap 库进行流量统计与数据包分析

              https://zhuanlan.zhihu.com/p/437187441 一、简介: Libpcap(Packet Capture Libray),即数据包捕获函数库。该库提供的C函数接口用于捕获经过指定网络接口的数据包,可以统计流量数据,可以添加过滤规则分析数据包数据内容。 Linux下的tc

              [转帖]利用BCC Tools追踪指定PID进程的方法

              http://t.zoukankan.com/Emuaer-p-EmuaBCCTools3.html 想法的产生 通过熟悉许多BCC tools后,我们可以通过一些工具的组合,来实现一些定向的进程追踪 execsnoop跟踪新进程创建,跟踪exec函数。 bashreadline打印系统中所有bas

              [转帖]Linux利用Sysctl命令调整内核参数

              https://cloud.tencent.com/developer/article/1721513?from=article.detail.1956187&areaSource=106000.18&traceId=lr3VPq-YZBl2ynblhnK3h 前言 sysctl 命令被用于在内核运

              [转帖]如何利用wrarp测试oss性能?

              https://zhuanlan.zhihu.com/p/529735003 前言 我们利用mino与ceph rgw搭建好的oss经过多层网络转发,传输速度必定有所折损,这个时候我们使用wrap来测试oss对象存储的真实性能。 利用wrarp测试oss性能 wrarp是minio项目下的一个开源测

              [转帖]Linux常用命令:利用sed命令删除文件的特定行

              http://www.dbs724.com/12806.html 前言 正常来说,我们想要删除文件中的某些行内容,一般都是先打开这个文件,然后找到要删除的内容,再然后选中这些行并按删除键进行删除,这在数据量很少时是没有问题的。但是,一旦文件中的行数据非常多,而且数据冗杂的情况下,你还要用上面的方法去

              [转帖]Shell脚本中利用expect实现非交互式

              https://developer.aliyun.com/article/885723?spm=a2c6h.24874632.expert-profile.295.7c46cfe9h5DxWK 简介: expect非交互式 expect可以在脚本中完成一些交互式的操作,例如远程登录时要输入yes或者