300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 利用Python调用outlook自动发送邮件

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

时间:2024-01-27 15:27:50

相关推荐

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

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

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

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

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

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

添加多个附件

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

import win32com.client as win32outlook = win32.Dispatch('outlook.application')mail = outlook.CreateItem(0)mail.To = '12345@' #收件人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 win32outlook = win32.Dispatch('outlook.application')mail = outlook.CreateItem(0)mail.SentOnBehalfOfName = 'accoumt2@' #选择发送邮箱,只需要修改对应使用的邮箱/账号地址即可mail.To = '12345@' #收件人mail.Subject = 'test1' #邮件主题mail.Body = '这是一封测试邮件' #邮件正文mail.Send() #发送

修改正文格式

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

import win32com.client as win32outlook = win32.Dispatch('outlook.application')mail = outlook.CreateItem(0)mail.To = '04056@' #收件人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 win32outlook = win32.Dispatch('Outlook.Application')mail = outlook.CreateItem(0)mail.To = '12345@'mail.Subject ='test'mail.BodyFormat = 2mail.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自动发送邮件

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。