python调用outlook发送邮件示例

python调用outlook发送邮件示例

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication


class SendMail(object):
   def __init__(self):
       self.sender = "接收人邮箱账号"
       self.title = "邮件标题"
       self.content = "邮件内容"
       self.sys_sender = '发送人邮箱账号'
       self.sys_pwd = '发送人邮箱密码'

   def send(self, filename):
       try:
           msg = MIMEMultipart()
           msg['From'] = formataddr(["", self.sys_sender])
           msg['To'] = formataddr(["", self.sender])
           msg['Subject'] = self.title

           # 邮件正文内容
           # 读取html文件内容
           with open(filename, 'rb') as f:
               mail_body = f.read()
               # 组装邮件内容和标题,中文需参数‘utf-8’,单字节字符不需要
               body = MIMEText(mail_body, 'html', 'utf-8')
               msg.attach(body)
           f.close()

           # SMTP服务器
           server = smtplib.SMTP("smtp.office365.com", 587, timeout=5)
           server.ehlo()
           server.starttls()
           server.login(self.sys_sender, self.sys_pwd)
           server.sendmail(self.sys_sender, [self.sender, ], msg.as_string())
           server.quit()
           return True
       except Exception as e:
           print(e)
           return False


if __name__ == '__main__':
   filename = "测试报告.html"
   send_email = SendMail().send(filename)

 

posted @ 2022-04-19 14:38  Markbaba  阅读(311)  评论(0编辑  收藏  举报