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()        # 釋放資源

 

Tags: