python发送邮件

python发送邮件

# python 有两个内置的和发送邮件相关的库 smtplib、email
#     smtplib 负责发送邮件
#     email 负责构造邮件格式和内容
# 邮件发送需要遵循SMTP协议
# 步骤:
# 1. 导入相关的库和方法
# 2. 设置邮箱域名、发件人邮箱、邮箱授权码、收件人邮箱
# 3. 构建MIMEMultipart对象代表邮件本身,可以往里边添加文本、图片、附件等
# 4. 设置邮件头部内容
# 5. 添加正文文本
# 6. 添加图片
# 7. 添加附件(Excel表格)
# 8. 发送邮件


import smtplib
import email
# 负责构造文本
from email.mime.text import MIMEText
# 负责构造图片
from email.mime.image import MIMEImage
# 负责将过个对象集合起来
from email.mime.multipart import MIMEMultipart
from email.header import Header

# SMTP服务器(这里实用的是163邮箱)
mail_host = 'smtp.163.com'
# 发件人邮箱
mail_sender = '****@163.com'
# 邮箱授权码(***注意时授权码***)
mail_license = '****'
# 收件人邮箱,可以是多个收件人
mail_receviers = ['****@163.com','****@163.com']

mm = MIMEMultipart('related')

# 邮件主题
subject_content = """
    本人邮件,请注意!!!!
"""

# 设置发送者,样儿遵循格式
mm['From'] = 'sender_name<*****@163.com>'
# 设置接收这,严格遵循格式
mm['To'] = 'receiver_1_name<*****@163.com>,receiver_2_name<****@163.com>'
# 设置有劲啊主题
mm['Subject'] = Header(subject_content, 'utf-8')

# 邮件正文
body_content = """
    邮件正文,邮件正文,邮件正文,邮件正文,邮件正文
"""

# 构造文本
message_text = MIMEText(body_content, 'plain', 'utf-8')

# 项MIMEMultipart对象种添加文本对象
mm.attach(message_text)

# 构造附件
atta = MIMEText(open('~/123.xlsx', 'rb').read(), 'base64', 'utf-8')
# 设置附件信息
atta['Content-Disposition'] = 'attachment;filename="123.xlsx"'
# 添加附件导邮件信息当中去
mm.attach(atta)

# 创建SMTP对象
stp = smtplib.SMTP()
# 设置发件人邮箱的域名和端口, 端口未25
stp.connect(mail_host)
# set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
stp.set_debuglevel(1)
# 登录邮箱
stp.login(mail_sender, mail_license)
# 发送邮件
stp.sendmail(mail_sender, mail_receviers, mm.as_string())
print("发送成功了!!!1")
stp.quit()

原文地址:https://www.cnblogs.com/nxzblogs/p/12403649.html