Python調用Outlook發郵件
調用Outlook發送郵件
需安裝pypiwin32模塊:pip install pypiwin32
1. 發送普通郵件
import win32com.client as win32
outlook = win32.Dispatch("outlook.Application")
mail = outlook.CreateItem(0)
mail.SentOnBehalfOfName = "一株草" # 發件人(郵箱或賬號)
mail.To = "[email protected]" # 收件人
mail.CC = "[email protected];[email protected]" # 抄送人
mail.Bcc = "[email protected];[email protected]" # 秘密抄送人
mail.Subject = "標題-星空古路" # 郵件主題
mail.Body = "正文-神話,延續,北斗七星,紫薇。。。" # 郵件正文
mail.Importance = 2 # 重要性,高
mail.Attachments.Add(r"F:\Archer\picture\shaoshao.png") # 添加附件
mail.Send() # 發送
2. 發送HTML內容且帶圖片的郵件
import win32com.client as win32
outlook = win32.Dispatch("outlook.Application")
mail = outlook.CreateItem(0)
mail.SentOnBehalfOfName = "一株草" # 發件人(郵箱或賬號)
mail.To = "[email protected]" # 收件人
mail.CC = "[email protected];[email protected]" # 抄送人
mail.Bcc = "[email protected];[email protected]" # 秘密抄送人
mail.Subject = "標題-星空古路" # 郵件主題
mail.BodyFormat = 2 # 2表示用Html format,可調整格式
# HTMLBody插入圖片:先把要插入的圖片當做一個附件添加,然後在HtmlBody中調用這個圖片
mail.Attachments.Add(r"F:\Archer\picture\shaoshao.png") # 添加附件
mail.HtmlBody = """<body>
<div><img src="shaoshao.png"></div>
</body>
""" # 郵件正文
mail.Attachments.Add(r"F:\Archer\picture\yunyun.png") # 添加正常的附件
mail.Display() # 顯示發送郵件界面
mail.Send() # 發送
註:1. 文件名不可用中文 2. 一定要把outlook的窗體展示出來,即Display()
3. 示例
import pythoncom
import win32com.client as win32
class SendMail:
"""調用Outlook發送郵件"""
def __init__(self):
self.outlook = win32.Dispatch("outlook.Application")
self.mail = self.outlook.CreateItem(0)
def send_mail(self):
self.mail.SentOnBehalfOfName = "一株草" # 發件人(郵箱或賬號)
self.mail.To = "[email protected]" # 收件人
self.mail.CC = "[email protected];[email protected]" # 抄送人
self.mail.Subject = "標題-星空古路" # 郵件主題
self.mail.BodyFormat = 2 # 2表示用Html format,可調整格式
# HTMLBody插入圖片:先把要插入的圖片當做一個附件添加,然後在HtmlBody中調用這個圖片
self.mail.Attachments.Add(r"F:\Archer\picture\shaoshao.png") # 添加附件
self.mail.HtmlBody = """<body>
<div><img src="shaoshao.png"></div>
</body>
""" # 郵件正文
self.mail.Attachments.Add(r"F:\Archer\picture\yunyun.png") # 添加正常的附件
self.mail.Display() # 顯示發送郵件界面
self.mail.Send() # 發送
if __name__ == '__main__':
pythoncom.CoInitialize() # 線程初始化
SendMail().send_mail()
pythoncom.Couninitialize() # 釋放資源