使用Python来操作邮箱

一.邮箱为软件的介入添加了接口,比如我们的邮箱验证,邮箱登录,不过前提是需要我们对其进行配置,

一下以QQ邮箱和网易邮箱为例:

QQ邮箱:首先点击设置按钮

QQ邮箱:选中账户选项卡

QQ邮箱:找到这项服务

QQ邮箱:然后按照提示发送短信到指定号码,获得授权码

二.代码发送邮件的具体实现

#smtp =>simple mail transfer protocol  简单邮件传输协议
import smtplib   
import email   #文件名不可以和引入的库同名
from email.mime.image import MIMEImage   #图片类型邮件
from email.mime.text import MIMEText # MIME 多用于邮件扩充协议
from email.mime.multipart import MIMEMultipart #创建附件类型

HOST = 'smtp.qq.com'  #调用的邮箱借借口
SUBJECT = '今天是2018年八月10日,是谁18岁生日'#设置邮件标题
FROM = '[email protected]'#发件人的邮箱需先设置开启smtp协议
TO = '[email protected],[email protected]'#设置收件人的邮箱(可以一次发给多个人)
message=MIMEMultipart('related')#邮件信息,内容为空  #相当于信封##related表示使用内嵌资源的形式,将邮件发送给对方
#发送邮件主体到对方邮箱,
#参数  1.内容必须是字符串
        # 2.内容形式,文本类型默认为plain
        # 3.内容编码使用utf-8
# message_html=MIMEText('shuai123 消灭不开行','plain','utf-8')
#将邮件内容,装入邮件信息中
message_html=MIMEText('<h1 style="color:red;font-size:100px">好好学习,天天向上</h1><img src="cid:small">','html','utf-8')
message.attach(message_html)

# ===========发送图片-=============
image_data=open('1.gif','rb')
message_image = MIMEImage(image_data.read())
#关闭刚才打开的文件
image_data.close()
# (222)
message_image.add_header('Content-ID','small')
#添加图片文件到邮件信息中去
message.attach(message_image)
#(333)
message_image = MIMEText(open('1.gif','rb').read(),'base64','utf-8')
message_image['Content-disposition'] = 'attachment;filename="happy.gif"'
message.attach(message_image)
#===========将xlsx文件作为内容发送到对方的邮箱读取excel,rb形式读取,
# ==对于MIMEText()来说默认的编码形式是base64 对于二进制文件来说没有设置base64,会出现乱码==========
message_xlsx = MIMEText(open('table.xlsx','rb').read(),'base64','utf-8')
#设置文件在附件当中的名字
message_xlsx['Content-Disposition'] = 'attachment;filename="test1111.xlsx"'
message.attach(message_xlsx)

#设置邮件发件人
message['From']=FROM
#设置邮件收件人
message['TO']=TO
#设置邮件标题
message['Subject']=SUBJECT
#获取江建有奖传输协议证书
email_client = smtplib.SMTP_SSL()
email_client.connect(HOST,'465')
#设置发送域名,端口465
result=email_client.login(FROM,'rehotdvftldxgfdf')#qq
# result=email_client.login(FROM,'xs147258')#网易163


print('登录结果',result)

email_client.sendmail(from_addr=FROM,to_addrs=TO.split(','),msg=message.as_string())
#关闭邮件发送客户端
email_client.close()

猜你喜欢

转载自blog.csdn.net/qq_38059635/article/details/81569081