以qq邮箱为例,在设置—账户中开启smtp服务。
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 发送方邮箱
from_addr = ‘xxx@qq.com‘
# 发送方的授权码,这里是qq邮箱给你的授权码,16位的英文
password = ‘‘
# 接收方的邮箱,包含多个对象可以为列表
to_addr = ‘xxx@qq.com‘
# qq邮箱的smtp服务器地址
smtp_server = ‘smtp.qq.com‘
content = ‘消息主题‘
subject = ‘邮件标题‘
# plain表示纯文本
msg = MIMEText(content, ‘plain‘. ‘utf-8‘)
# 构建邮件头
msg[‘From‘] = Header(from_addr)
msg[‘To‘] = Header(to_addr)
msg[‘Subject‘] = Header(subject, ‘utf-8‘)
# 构建连接服务
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server, 465)
# 登录邮件服务器
server.login(from_addr, password)
# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())
import smtplib
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from_addr = ‘2876137056@qq.com‘
password = ‘ojyzjelcqnnidghf‘
to_addr = ‘2876137056@qq.com‘
smtp_server = ‘smtp.qq.com‘
content = """
<h1>这是一级标题</h1>
<p><img src="cid:image1"></p>
"""
subject = ‘邮件标题‘
msg_root = MIMEMultipart()
msg_root[‘From‘] = Header(from_addr)
msg_root[‘To‘] = Header(to_addr)
msg_root[‘Subject‘] = Header(subject, ‘utf-8‘)
# 邮件主体
msg_root.attach(MIMEText(content, ‘html‘, ‘utf-8‘))
# 指定图片
fp = open(‘test.jpg‘, ‘rb‘)
msgImage = MIMEImage(fp.read())
fp.close()
# 定义图片ID,在HTML文本中引用
msgImage.add_header(‘Content-ID‘, ‘<image1>‘)
msg_root.attach(msgImage)
# 启动服务
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server, 465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg_root.as_string())
server.close()
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from_addr = ‘xxx@qq.com‘
password = ‘‘
to_addr = ‘‘
smtp_server = ‘smtp.qq.com‘
content = ‘邮件内容‘
subject = ‘邮件标题‘
msg_root = MIMEMultipart()
msg_root[‘From‘] = Header(from_addr)
msg_root[‘To‘] = Header(to_addr)
msg_root[‘Subject‘] = Header(subject, ‘utf-8‘)
# 邮件正文
att1 = MIMEText(open(‘test.txt‘, ‘rb‘).read(), ‘base64‘, ‘utf-8‘)
att1["Content-Type"] = ‘application/octet-stream‘
# filename随便写,这是你发送过去的邮件中显示的名字
att1["Content-Disposition"] = ‘attachment; filename="test.txt"‘
msg_root.attach(att1)
# 启动服务
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server, 465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg_root.as_string())
server.close()
原文:https://www.cnblogs.com/journeyer-xsh/p/14044462.html