我们经常可以看到在某一个网站注册时会发送一封邮件,那么这是怎么实现的呢,今天我们用python来了解一下。
第一步在要发送的邮箱里找到设置比如qq邮箱
这里一定要点击开启
然后在代码中我们引入smtplib这个包
然后import email
再引入这些
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
首先设置邮件 内容为空
message=MIMEMultipart('related')
其中related表示使用内嵌资源的形式,将邮件发送给对方
发送文本的话这么写
message_html=MIMEText('我是正文内容','plain','utf-8')
message.attach(message_html)
发送图片这么写
image_data=open('1.gif','rb')
# 设置读取获取的二进制数据
message_image=MIMEImage(image_data.read())
#关闭刚才打开的文件
image_data.close()
# 添加图片文件到邮件信息当中去
message.attach(message_image)
添加xls文件这么写
message_xlsx=MIMEText(open('table.xlsx','rb').read(),'base64','utf-8')
# 设置文件在附件当中的名字
message_xlsx['Content-Disposition']='attachment;filename="test1111.xlsx"'
message.attach(message_xlsx)
以上步骤是往一封信里添加各种内容,但还没有发送
接下来我们配置好信息发送
#设置邮箱的域名
HOST='smtp.qq.com'
# 设置邮件标题
SUBJECT='标题'
# 注意 发件人的邮箱必须先设置开始smtp协议
FROM='自己邮箱'
# 设置收件人的邮箱(可以一次性发送给多个人)
TO='目标邮箱'
# 设置邮件发件人
message['From']=FROM
# 设置邮件收件人
message['To']=TO
#设置邮件标题
message['Subject']=SUBJECT
# 获取简单邮件传输协议的证书
email_client=smtplib.SMTP_SSL()
# 设置发件人邮箱的域名和端口 端口为465
email_client.connect(HOST,'465')
# 密码千万不要写邮箱的密码 要写邮箱的授权码
result=email_client.login(FROM,'授权码')
再来一句代码发送
email_client.sendmail(from_addr=FROM,to_addrs=TO.split(','),msg=message.as_string())
ok完成了