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)