1. 程式人生 > 其它 >利用 python 傳送郵件

利用 python 傳送郵件

電子郵件系統簡述

電子郵件系統的組成如下圖:

電子郵件的傳送過程如下圖:

一封電子郵件由一個基本的信封、數個首部欄位、一個空行和郵件主體組成,常見的首部如下圖:

python實現

此處僅實現文字內容的電子郵件傳送。

emai實現郵件構造,其中MIMEText提供郵件構造功能,Header提供編碼功能。
smtplib實現SMTP協議,完成郵件傳送。

from email.header import Header
from email.mime.text import MIMEText

import smtplib


def sendEmail(from_addr, password, to_addr, smtp_server, content):
    '''
    parameters:
    
    from_addr 傳送方郵箱

    password 傳送方密碼

    to_addr 接收方郵箱

    smtp_server 傳送方郵件伺服器

    content 郵件內容 {'text': 'xxx', 'subject': 'xxx'}
    '''

    msg = MIMEText(content['text'], 'plain', 'utf-8')
    msg['From'] = Header(from_addr)
    msg['To'] = Header(to_addr)
    msg['Subject'] = Header(content['subject'])

    server = smtplib.SMTP(smtp_server, 25)
    server.set_debuglevel(1)
    server.login(from_addr, password)
    server.sendmail(from_addr, [to_addr], msg.as_string())
    server.quit()


if __name__ == '__main__':
    content = {'text': '郵件傳送測試', 'subject': 'test'}
    from_addr = '[email protected]'        #以QQ郵箱為例
    password = 'xxx'                #授權碼
    to_addr = '[email protected]'    #接收方郵箱
    smtp_server = 'smtp.qq.com'     #傳送方伺服器
    sendEmail(from_addr, password, to_addr, smtp_server, content)