使用Python邮件发送

使用Python邮件发送

可以参考以下连接进行学习
python邮件发送学习参考连接

首先要获取授权码 如下

在网易邮箱中进行 因为QQ邮箱太拉跨
使用Python邮件发送_第1张图片
使用Python邮件发送_第2张图片

使用Python邮件发送_第3张图片
使用Python邮件发送_第4张图片
使用Python邮件发送_第5张图片

import smtplib
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from urllib.parse import quote  #百分号编码


def create_attachment(path, filename):
    """
    创建附件
    :param path:   路径
    :param filename:  文件名
    :return:
    """
    with open(f'{path}/{filename}', 'rb') as file:
        attachment = MIMEText(file.read(), 'base64', 'utf-8')
        # 指定内容类型
        attachment['content-type'] = 'application/octet-stream'
        # 将文件名处理成百分号编码
        filename = quote(filename)
        # 指定如何处置内容  如收件人收到附件后下载附件
        attachment['content-disposition'] = f'attachment; filename="{filename}"'
    return attachment


# 创建邮件主体对象
email = MIMEMultipart()
# 设置发件人、收件人和主体
email['From'] = Header('发件人名')
email['To'] = Header('收件人1名字;收件人2')
email['Subject'] = Header('什么***文件请查收', 'utf-8')#邮件名称
# 添加邮件正文内容
content = """内容例如:据德国媒体报道,当地时间9日,德国火车司机工会成员进行了投票,
定于当地时间10日起进行全国性罢工,货运交通方面的罢工已于当地时间10日19时开始。
此后,从11日凌晨2时到13日凌晨2时,德国全国范围内的客运和铁路基础设施将进行48小时的罢工。"""
email.attach(MIMEText(content, 'plain', 'utf-8'))
# 添加一个附件
email.attach(create_attachment('附件路径', '离职证明.docx'))
# 再添加一个附件
email.attach(create_attachment('附件路径', '离职证明模板.docx'))

# 创建SMTP_SSL对象(连接邮件服务器)
smtp_obj = smtplib.SMTP_SSL('smtp.qq.com', 465)
# 通过用户名和授权码进行登录
smtp_obj.login('用户名(邮箱)', '授权码如sdwakzgvxvvbhda')
# 发送邮件(发件人、收件人、邮件内容(字符串))
# 可以设置随机抽取发送多个好友
smtp_obj.sendmail(
    '发件人邮箱',
    ['收件人1邮箱', '收件人2邮箱'],
    email.as_string()
)

你可能感兴趣的:(python)