python呼叫outlook傳送郵件示例
阿新 • • 發佈:2022-04-19
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)