Loading

利用 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 = 'xxx@qq.com'        #以QQ邮箱为例
    password = 'xxx'                #授权码
    to_addr = '839957231@qq.com'    #接收方邮箱
    smtp_server = 'smtp.qq.com'     #发送方服务器
    sendEmail(from_addr, password, to_addr, smtp_server, content)
posted @ 2022-12-10 11:37  Kong-Aobo  阅读(41)  评论(0编辑  收藏  举报