Python 使用office365邮箱的示例
一、概述
最近遇到一个需求,需要使用office365邮箱发送邮件,使用SSL发送会失败,必须使用TLS加密协议才能发送成功。
二、完整代码
使用类封装了一下,功能如下:
1.支持附件
2.支持多个发件人
3.执行TLS
MailTools.py
#!/usr/bin/envpython3 #coding:utf-8 importsmtplib#加载smtplib模块 fromemail.mime.textimportMIMEText fromemail.utilsimportformataddr fromemail.mime.multipartimportMIMEMultipart fromemail.mime.applicationimportMIMEApplication importtime classSendMail(object): def__init__(self,sender,title,content): self.sender=sender#发送地址 self.title=title#标题 self.content=content#发送内容 self.sys_sender='xx@office365.com'#系统账户 self.sys_pwd='123456'#系统账户密码 defsend(self,file_list): """ 发送邮件 :paramfile_list:附件文件列表 :return:bool """ try: #创建一个带附件的实例 msg=MIMEMultipart() #发件人格式 msg['From']=formataddr(["",self.sys_sender]) #收件人格式 msg['To']=formataddr(["",self.sender]) #邮件主题 msg['Subject']=self.title #邮件正文内容 msg.attach(MIMEText(self.content,'plain','utf-8')) #多个附件 forfile_nameinfile_list: print("file_name",file_name) #构造附件 xlsxpart=MIMEApplication(open(file_name,'rb').read()) #filename表示邮件中显示的附件名 xlsxpart.add_header('Content-Disposition','attachment',filename='%s'%file_name) msg.attach(xlsxpart) #SMTP服务器 server=smtplib.SMTP("smtp.office365.com",587,timeout=10) server.ehlo() server.starttls() #登录账户 server.login(self.sys_sender,self.sys_pwd) #发送邮件 server.sendmail(self.sys_sender,[self.sender,],msg.as_string()) #退出账户 server.quit() returnTrue exceptExceptionase: print(e) returnFalse if__name__=='__main__': #发送地址 sender="12345678@qq.com" #标题 title="测试告警" #开始时间 start_time=time.strftime('%Y-%m-%d%H:%M:%S') ip="xx.xx.xx.xx" #发送内容 content="{}ip:{}掉线".format(start_time,ip) #附件列表 file_list=[] ret=SendMail(sender,title,content).send(file_list) print(ret,type(ret))
注意:请根据实际情况,修改邮件账号和密码。
以上就是Python使用office365邮箱的示例的详细内容,更多关于python使用office邮箱的资料请关注毛票票其它相关文章!