一、Python发送邮件的步骤
前提:开通了第三方授权,可以使用SMTP服务
1.创建一个SMTP对象:smtp = smtplib.SMTP()
2.连接SMTP服务器,默认端口都是25:smtp.connect('smtp.163.com','25')
3.登录自己邮箱账号:smtp.login('18910148469@163.com','lingjing2315')
4.调用发送消息函数,参数:发件人,收件人(为列表的格式,单个收件人为字符串),消息内容:smtp.sendmail('18910148469','974644081@qq.com',msg.as_string())
5.关闭连接:smtp.quit()
二、邮件消息注册
首先创建一个消息对象:
msg = email.mime.multipart.MIMEMultipart() msg['from']='18910148469@163.com' msg['to']='974644081@qq.com;1414873973@qq.com' msg['subject'] = 'ajing1111'
分别指明邮件的发件人,收件,只代表显示的问题
三、消息内容
首先,先定义一个字符串,来表示消息内容:
context ='''hello world''' txt = email.mime.text.MIMEText(_text=content,_subtype="html") msg.attach(txt)
-subtype:这个参数表示是以HTML解析的形式去发送,还是以text的形式去发送
四、发送附件
发送附件的步骤:
1.先找到一个本地文件
2.打开文件,读出文件字符串
3.通过MIMText()类来创建一个对象attm,传入文件读出内容
4.增加att的头部信息,并指定文件名字
5.添加到msg消息中msg.attach(att)
attfile = 'test.py' basename = os.path.basename(attfile) fp = open(attfile, 'rb') att = email.mime.text.MIMEText(fp.read(), 'html', 'utf-8') att["Content-Type"] = 'application/octet-stream' att.add_header('Content-Disposition', 'attachment',filename=('utf-8', '', basename))#three-tuple of (charset, language, value), # encoders.encode_base64(att)
五、发送图片
发送图片的步骤:
1.本地必须存在一张图片
2.打开图片,并读取图片内容
3.创建发邮件相对应的图片对象imgattr = MIMEImage(fimg.read())
4.增加图片的头信息,imgattr.add.header('Content ID','<image1>'),指定了图片的ID,图片如果想在正文中显示,必须通过HTML的格式显示出来:在前端代码中指定图片ID
5.添加到message的信息中
六、使用第三方库yagmail来发送邮件
使用pip install yagmail来进行安装。
七、程序例子