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

使用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调用outlook自动发送邮件的更多相关文章

  1. C#调用Outlook来发送邮件

    原文:C#调用Outlook来发送邮件 写了一个简单的Windows Form程序,实现利用Outlook来发送电子邮件的功能.下面逐步讲解如何实现,再加上具体的代码. 打开VS2010, 新建一个W ...

  2. VBA控制outlook自动发送邮件(转)

    使用Excel VBA实现Outlook自动发送邮件 | 在工作上我们都会遇到批量发送邮件的情况,面对重复而规律性的工作,可以使用Excel的VBA实现自动批量化发送邮件.大大减小工作时间,提升工作效 ...

  3. .net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件

    .net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件 源码可以在我的资源列表中下载: MPOEMail http://download.csdn.net/my VS2012 ...

  4. Python调用Outlook发邮件

    调用Outlook发送邮件 需安装pypiwin32模块:pip install pypiwin32 1. 发送普通邮件 import win32com.client as win32 outlook ...

  5. 使用python调用email模块发送邮件附件

    使用python调用email模块实现附件发送 需要模块: import datetime import time import sys import mimetypes import smtplib ...

  6. 利用Python调用pastebin.com API自动创建paste

    在上一篇文章中,已经实现了模拟pastebin.com的账号登录,并且获取了api_dev_key,这一篇文章主要讲一下调用API创建paste 登录之后,进入API页面,发现网站已经提供了几个API ...

  7. Python 调用outlook发送邮件(转 )

    单账号: import win32com.client as win32 def send_mail(): outlook = win32.Dispatch('Outlook.Application' ...

  8. Python的Web编程[2] -> WebService技术[0] -> 利用 Python 调用 WebService 接口

    WebService技术 / WebService Technology 1 关于webservice / Constants WebService是一种跨编程语言和跨操作系统平台的远程调用技术. W ...

  9. 批量群发,营销必备!Python代码实现自动发送邮件!

    在运维开发中,使用 Python 发送邮件是一个非常常见的应用场景.今天一起来探讨一下,GitHub 的大牛门是如何使用 Python 封装发送邮件代码的. 一般发邮件方法 SMTP是发送邮件的协议, ...

  10. 利用Python实现App自动签到领取积分

    要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化.但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了. 有需要Python学习资料的小伙伴吗?小编整理[ ...

随机推荐

  1. 使用NPOI导出Excel,并在Excel指定单元格插入图片

    一.添加Nuget引用 二.弹框选择保存路径 string fileName = $"记录_{DateTime.Now.ToString("yyyyMMdd_HHmmss" ...

  2. Quartz.Net系列(五):Quartz五大构件Job之JobBuilder解析

    所有方法图: 1.Create,OfType 在JobBuilder中有五种方法执行Action: var job1 = JobBuilder.Create().OfType<FirstJob& ...

  3. 华为云API Explorer重磅推出API编排,开发者0代码高效构建工作流

    本文分享自华为云社区<华为云API Explorer重磅推出API编排,开发者0代码高效构建工作流(体验用户招募中)>,作者:华为云PaaS服务小智. 打破传统开发模式,API编排应运而生 ...

  4. KubeEdge和Kuiper“双剑合并”,轻松解决边缘流式数据处理

    摘要:KubeEdge 是一个开源的边缘计算平台,它在Kubernetes原生的容器编排和调度能力之上,扩展实现了 云边协同.计算下沉.海量边缘设备管理.边缘自治等能力.KubeEdge还将通过插件的 ...

  5. AOC萌新探索:搭建和体验在线AOC环境

    摘要:AOC是一个做网络设备自动化运维以及三方设备纳管的一个能力平台. 本文分享自华为云社区<AOC萌新探索之旅第一期--在线AOC环境初体验>,作者:oysterzz. 接触AOC没多久 ...

  6. 5种Python使用定时调度任务的方式

    摘要:Python 有几种方法可以定时调度一个任务,这就是我们将在本文中学习的内容. 本文分享自华为云社区<Python中使用定时调度任务(Schedule Jobs)的5种方式)>,作者 ...

  7. Vuex在TSX中的改造方案:TS改造Vue2项目Vuex如何处置?

    vuex目前比较流行的有:vuex-aggregate . vuex-class.vuex-module-decorators npm搜到相关的,看下趋势图:https://www.npmtrends ...

  8. 标注BIO-精灵标注助手

    目录 准备待标注数据 将待标数据生成文件 数据标注 下载标注软件 创建项目 标注数据 导出数据 ANN 转 BIO 推荐使用 Label Studio 准备待标注数据 创建 raw_data.txt ...

  9. 【原理篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview

    本文首发我的微信公众号徐公,收录于 Github·AndroidGuide,这里有 Android 进阶成长知识体系, 希望我们能够一起学习进步,关注公众号徐公,5 年中大厂程序员,一起建立核心竞争力 ...

  10. Mac | 解决 MacOS 配置 Maven 出现的 Java_Home Error

    1. 错误信息 2. 解决方案 2.1 对于Windows系统下解决方案 https://blog.csdn.net/frankarmstrong/article/details/69945774,在 ...