900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python用outlook自动发邮件_python调用outlook发送exchange邮件(含附件)

python用outlook自动发邮件_python调用outlook发送exchange邮件(含附件)

时间:2018-12-29 09:20:06

相关推荐

python用outlook自动发邮件_python调用outlook发送exchange邮件(含附件)

最近在解决一个问题,就是生成每日数据的报表,然后利用邮件群发给各位同事。由于主要工作不在这,为了节省时间,所以选择了使用python语言。

选择发送邮件时,有人可能会说直接使用smtp库不就行吗?为啥要调用outlook多此一举。事情是这样的,我所用的邮箱禁止使用smtp和pop3连接邮件,只能使用exchange的方式连接。而且使用python如何通过exchange方式连接邮件,一直没能查得到资料,所以使用win32调用outlook的方式群发邮件。

具体如何调用outlook发送邮件,我就不多说了,给大家推荐一篇文章:/yang_jianli/blog/static/1619900068922841273/ ,我把代码也放下面了,这个说得很清楚,我就是直接抄的,现在我要说的是如何发送附件,这篇文章里面没有,而且也找不到现成的代码(百度上能搜到一个,但是试了不行,根本不对)。

经过查询MSDN的资料,终于知道了outlook的attachments如何使用:

Sub AddAttachment()

Dim myItem As Outlook.MailItem

Dim myAttachments As Outlook.Attachments

Set myItem = Application.CreateItem(olMailItem)

Set myAttachments = myItem.Attachments

myAttachments.Add "C:\Test.doc", olByValue, 1, "Test"

myItem.Display

End Sub

其中olByValue是附件的类型,有四种值,具体有哪四种大家可以到MSDN官网上查询,这里直接设置成1,意思是附件是原文件的一份拷贝。于是我照这个示例在下面的程序里面添加了两行红色加粗的代码,这样附件就能发出去了。

#coding:utf-8

import win32com.client as win32

def outlook():

app= ‘Outlook’

olook = win32.gencache.EnsureDispatch(“%s.Application” % app)

mail=olook.CreateItem(win32.constants.olMailItem)

mail.Recipients.Add(‘jianl@’)

mail.Subject = ‘21112Python -to – %s ‘ %app

myAtt=mail.Attachments

myAtt.Add(r‘c:\abc.txt’,1,1,”myFile”)

mail.Body =’body’

mail.Send()

print “send ok”

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