Python 使用office365郵箱的示例
一、概述
最近遇到一個需求,需要使用office365郵箱發(fā)送郵件,使用SSL發(fā)送會失敗,必須使用TLS加密協(xié)議才能發(fā)送成功。
二、完整代碼
使用類封裝了一下,功能如下:
1. 支持附件
2. 支持多個發(fā)件人
3. 執(zhí)行TLS
MailTools.py
#!/usr/bin/env python3
# coding: utf-8
import smtplib # 加載smtplib模塊
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import time
class SendMail(object):
def __init__(self,sender,title,content):
self.sender = sender #發(fā)送地址
self.title = title # 標題
self.content = content # 發(fā)送內(nèi)容
self.sys_sender = 'xx@office365.com' # 系統(tǒng)賬戶
self.sys_pwd = '123456' # 系統(tǒng)賬戶密碼
def send(self,file_list):
"""
發(fā)送郵件
:param file_list: 附件文件列表
:return: bool
"""
try:
# 創(chuàng)建一個帶附件的實例
msg = MIMEMultipart()
# 發(fā)件人格式
msg['From'] = formataddr(["", self.sys_sender])
# 收件人格式
msg['To'] = formataddr(["", self.sender])
# 郵件主題
msg['Subject'] = self.title
# 郵件正文內(nèi)容
msg.attach(MIMEText(self.content, 'plain', 'utf-8'))
# 多個附件
for file_name in file_list:
print("file_name",file_name)
# 構(gòu)造附件
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)
# 發(fā)送郵件
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__':
# 發(fā)送地址
sender = "12345678@qq.com"
# 標題
title = "測試告警"
# 開始時間
start_time = time.strftime('%Y-%m-%d %H:%M:%S')
ip = "xx.xx.xx.xx"
# 發(fā)送內(nèi)容
content = "{} ip: {} 掉線".format(start_time,ip)
# 附件列表
file_list = []
ret = SendMail(sender, title, content).send(file_list)
print(ret,type(ret))
注意:請根據(jù)實際情況,修改郵件賬號和密碼。
以上就是Python 使用office365郵箱的示例的詳細內(nèi)容,更多關(guān)于python 使用office郵箱的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PyInstaller打包selenium-wire過程中常見問題和解決指南
常用的打包工具 PyInstaller 能將 Python 項目打包成單個可執(zhí)行文件,但也會因為兼容性問題和路徑管理而出現(xiàn)各種運行錯誤,本指南總結(jié)了打包過程中常見問題和解決方案,大家可以根據(jù)需要進行選擇2025-04-04
Python PyQt5實戰(zhàn)項目之網(wǎng)速監(jiān)控器的實現(xiàn)
PyQt5以一套Python模塊的形式來實現(xiàn)功能。它包含了超過620個類,600個方法和函數(shù)。它是一個多平臺的工具套件,它可以運行在所有的主流操作系統(tǒng)中,包含Unix,Windows和Mac OS。PyQt5采用雙重許可模式。開發(fā)者可以在GPL和社區(qū)授權(quán)之間選擇2021-11-11
python利用elaphe制作二維條形碼實現(xiàn)代碼
條形碼的應用將會越來越廣泛,看到了一篇文章,寫的挺好的!用手機拍二維碼,查二維碼確實很爽!這將成為一種潮流2012-05-05
python 將html轉(zhuǎn)換為pdf的幾種方法
這篇文章主要介紹了python 將html轉(zhuǎn)換為pdf的幾種方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12
Python中用append()連接后多出一列Unnamed的解決
Python中用append()連接后多出一列Unnamed的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
通過python掃描二維碼/條形碼并打印數(shù)據(jù)
這篇文章主要介紹了通過python掃描二維碼/條形碼并打印數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11
Python數(shù)學建模StatsModels統(tǒng)計回歸模型數(shù)據(jù)的準備
這篇文章主要介紹了Python數(shù)學建模StatsModels統(tǒng)計回歸模型數(shù)據(jù)的準備學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-10-10
Python?pandas中read_csv參數(shù)示例詳解
使用pandas做數(shù)據(jù)處理的第一步就是讀取數(shù)據(jù),數(shù)據(jù)源可以來自于各種地方,csv文件便是其中之一,下面這篇文章主要給大家介紹了關(guān)于Python?pandas中read_csv參數(shù)詳解的相關(guān)資料,需要的朋友可以參考下2023-01-01

