1、概念:SMTP(Simple Mail Transfer Protocol)及简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由他来控制新建的中转方式
3.2配置邮件SMTP服务
需要将邮箱的第三方服务开启:smtp服务
3.3SMTP邮件发送
1)、导入包
import smtplib
from email.mime.text import MIMEText
from email.header import Header
smtplib:创建SMTP对象
MIMEText:创建邮箱对象
Header:格式化发件人、收件人、标题等信息
2)、配置邮箱
mail_host = “smtp.qq.com”#设置服务器
mail_user =” ****@qq.com”#用户名
mail_pass = “******”#口令【客户端授权码】
sender = mail_user #发送邮箱
receivers = [‘*****@qq.com’]#接收邮箱列表
3)、封装邮箱信息
message = MIMEText(‘邮箱内容’,’plain’,’utf-8’)# 文本文件
message[‘From’] = Header(“发件人”,”utf-8”)
message[‘To] = Header(“收件人”,”utf-8”)
message[‘Subject] = Header(“标题”,”utf-8”)
4)、发送邮件
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host,25)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender,receivers,message.as_string())
print('发送成功! ')
except smtplib.SMTPException:
print('发送失败! ')
3.3.1纯文本邮件的发送
3.3.2带HTML邮件的发送
# 第三方 SMTP服务
mail_host = 'smtp.qq.com' #设置服务器
mail_user = '473736808@qq.com' #用户名
mail_pass = 'fmacuyytyakmbhbg' #口令
sender = mail_user
receivers = ['zhuanglicheng8@163.com']
mail_msg = """
<h1 style="color:green">Python 邮件发送测试。。。</h1>
<p>黑龙江工商学院</p>
<img src="授权码1.JPG">
"""
message = MIMEText(mail_msg, 'html' , 'utf-8')
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = Header('测试用的','utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host,25)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender,receivers,message.as_string())
print('发送成功')
except smtplib.SMTPException:
print('发送失败')
3.3.3带 附件邮件的发送
# 第三方 SMTP服务
mail_host = 'smtp.qq.com' #设置服务器
mail_user = '473736808@qq.com' #用户名
mail_pass = 'hvxoghznzrgjcaac' #口令
sender = mail_user
receivers = ['zhuanglicheng8@163.com']
# 创建一个带有附件的实例
message = MIMEMultipart()
message['From'] = Header('有了你……','utf-8')
message['To'] = Header('<473736808@qq.com>','utf-8')
message['Subject'] = Header('测试用的','utf-8')
message.attach(MIMEText('测试是发送到发', 'plain' , 'utf-8'))
att1 = MIMEText(open('tesss.txt','rb').read(),'base64','utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1['Content-Disposition'] = 'attachment: filename="tesss.txt"'
message.attach(att1)
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host,25)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender,receivers,message.as_string())
print('发送成功')
except smtplib.SMTPException:
print('发送失败')
