1. 程式人生 > 其它 >python呼叫outlook傳送郵件示例

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)