利用Python调用outlook自动发送邮件

2023-05-16

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

使用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自动发送邮件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用Python调用outlook自动发送邮件 的相关文章

随机推荐

  • SpringCloudGateway网关限流并返回自定义异常信息

    1 实现Gateway网关限流 SpringCloudGateway自带了 RequestRateLimiterGatewayFilterFactory 限流方案 xff0c 依赖redis与内置的RedisRateLimiter过滤器进行
  • 解决Maven打包的文件不带依赖项

    学习笔记 xff0c 参考别人的教程 Maven打包时不会自带依赖项Jar xff0c 导致运行失败 xff0c Pom文件直接加入以下语句即可 xff1a lt build gt lt plugins gt lt plugin gt lt
  • Git 回退(Revert)操作后无法重新合并的问题

    问题背景 xff1a 公司使用码云企业版作为代码托管平台 xff0c 采用master dev分支分类进行代码管理 xff0c matser分支为保护分支 xff0c 只能审核后在网页端提交合并 xff08 请求评审 xff09 此时dev
  • Synchronized锁失效的几种情况

    1 多例模式 Synchronized关键字注释在非静态方法上时 xff0c 锁对象是当前对象 xff0c 如果此时非单例调用 xff0c 会导致锁失效 xff01 解决方法 xff1a 1 使用单例模式 xff0c 或锁定唯一对象 2 事
  • SpringBoot字段注入和构造函数注入的区别

    文章背景 在使用Spring开发项目时 xff0c 我们经常需要使用依赖注入来管理对象之间的依赖关系 Spring提供了多种依赖注入方式 xff0c 如构造函数注入 Setter方法注入和字段注入等 这些方式各有优缺点 xff0c 需要根据
  • python和尚念经:实例化对象、调用方法、最全属性、最全内置函数

    一 xff1a 先搞懂定义 span class token keyword class span span class token class name Ball span span class token punctuation spa
  • 谈谈自媒体的流量变现。

    我两天前发了一条广告 xff0c 关于按摩颈椎仪的广告 自媒体做广告这事 xff0c 有些读者不喜欢 xff0c 有些读者见惯不惯 xff0c 我觉得没关系 xff0c 今天不谈具体广告 xff0c 今天就这个引子 xff0c 谈谈我对自媒
  • 在Windows上安装Ubuntu子系统系统,报错WslRegisterDistribution failed with error: 0x8007019e

    在Windows应用商店安装Ubuntu系统 xff0c 报错WslRegisterDistribution failed with error 0x8007019e 1 报错内容 Installing span class token p
  • 生成器(建造者)模式

    文章目录 思考生成者模式1 生成器模式的本质2 何时选用生成器模式3 优缺点4 生成器模式的结构5 实现生成器模式构建对象的多种表示形式生成器模式链式构建对象 思考生成者模式 生成器模式就是将对象构建和对象内部构建分离 xff0c 将一个复
  • 基于AList实现网盘挂载和WebDAV本地挂载网盘

    AList AList是一个支持多种存储 xff0c 支持网页浏览和 WebDAV 的文件列表程序 xff0c 由 gin 和 Solidjs 驱动 AList官方文档 xff1a https alist nn ci AList官方GitH
  • 常用Windows快捷键大全

    0 简要 要将电脑玩的溜 xff0c 快捷键是必须要掌握的技能 xff0c 本文汇总了一些常用的快捷键 xff0c 相信加以练习 xff0c 一定能提高你的工作效率 笔者将常用快捷键分为四个系列 xff0c 如下所示 xff1a Win 系
  • Centos8安装MySql,完美解决

    本文使用yum安装mysql linux版本为 centos 8 参考 xff1a MySQL官网yum源 MySQL官网Linux yum安装Mysql CentOS 8 yum安装软件时 xff0c 提示无法从AppStream下载 c
  • aws亚马逊服务器Ubuntu18脚本一键重装系统为centos7

    这两天注册了aws xff0c 送了一年的最低配服务器嘛 但是可使用的系统就是有Ubuntu和Redhat 都试了试不太好用 今天就在网上看到了一键重装的脚本 就记录分享一下 先后执行下列两条命令就可以 xff1a apt get inst
  • 利用excel求特定条件下的最大/小值(maxif/minif)

    欢迎关注我的公众号 xff1a Smilecoc的杂货铺 在Excel中有sumif countif等函数可以实现求特定条件下数值的加总和计数 xff0c 那么如何在一个或多个条件下求出此时的最大值或者最小值呢 xff1f 其实sumif函
  • 时间序列(一):时间序列数据与时间序列预测模型

    时间序列系列文章 xff1a 时间序列 xff08 一 xff09 xff1a 时间序列数据与时间序列预测模型 时间序列 xff08 二 xff09 xff1a 时间序列平稳性检测 时间序列 xff08 三 xff09 xff1a ARIM
  • Windows下解压tar.gz压缩文件

    一 tar gz是什么文件 xff1f 以 tar gz为后缀的文件是一种压缩文件 xff0c 在Linux和macOS下常见 xff0c Linux和macOS都可以直接解压使用这种压缩文件 二 怎么解压tar gz 一些软件支持解压ta
  • Python安装模块(包/库)的方法

    这里写目录标题 通过pip安装正常在线安装pip命令补全更改下载镜像 离线包安装库的下载库的安装whl的安装 tar gz的安装源码安装 本地安装报错 xff08 依赖 xff09 Pycharm中安装手动安装终端命令行安装 Jupyter
  • win10 安装visual studio C++ build tools 【visualcppbuildtools_full.exe】提示安装包丢失 毁坏

    win10 安装visual studio C 43 43 build tools visualcppbuildtools full exe 提示安装包丢失 毁坏 1 问题 xff1a 安装visualcppbuildtools full
  • Excel:使用powerquery进行多表合并

    注 xff1a 本文原创为 xff1a https www cnblogs com fanyu2019 p 11175827 html 本文在原创的基础上添加修改了一点内容 目录 一 单工作簿多工作表合并二 多工作簿单工作表合并三 多工作簿
  • 利用Python调用outlook自动发送邮件

    欢迎关注我的公众号 xff0c 在这里有数据相关技术经验的优质原创文章 使用Python发送邮件有两种方式 xff0c 一种是使用smtp调用邮箱的smtp服务器 xff0c 另一种是直接调用程序直接发送邮件 而在outlook中我们一般是