邮件发送基本流程
1.导入发送邮件需要的所有的库
连接邮箱服务器,登录邮箱和发送邮件的模块
import smtplip
导入邮件相关库
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.test import MIMEText
2.准备邮箱账号和授权码
username = '填自己邮箱'
mandate_code = '填授权码'
3.连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.qq.com')
4.登录邮箱
con.login(username, mandate_code)
5.构建邮件
(1)创建邮件对象(创建空邮件)
msg = MIMEMultipart()
(2)添加邮件主题
header = Header('邮件主题', 'utf-8').encode()
msg['Subject'] = header
(3)设置发件人显示信息
sender = f'{username} <{username}>'
msg['From'] = sender
(4)设置收件人信息
receiver = '填收件人邮箱'
msg.attach(content)
(5)构建邮件正文
content = MIMETest('邮件正文内容', 'plain', 'utf-8')
msg.attach(content)
6.发送邮件
con.sendmail(username, '填收件人邮箱', msg.as_string())
7.关闭连接
con.quit()
添加文本附件
内容和基本流程一样,只是在(构建邮件)部分有所不同
msg = MIMEMultipart()
header = Header('发送附件', 'utf-8').encode()
msg['Subject'] = header
receiver = '填收件人邮箱'
msg['To'] = receiver
sender = f'{username} <{username}>'
msg['From'] = sender
content = MIMETest('具体内容请查收附件', 'plain', 'utf-8')
msg.attach(content)
file1 = open('填图片的路径', 'rb').read()
att1 = MIMEText(file1, 'base64', 'utf-8')
att1['Cotent-Disposition'] = 'attachment; filename"填图片路径"'
msg.attach(att2)
发送富文本
内容和基本流程一样,也是在(构建邮件)部分有所不同
msg = MIMEMultipart()
msg['Subject'] = Header('发送富文本', 'utf-8').encode()
msg['From'] = f'{username} <{username}>'
msg['To'] = '填收件人邮箱'
# html - 富文本(超文本)
# MIMETest(html代码, ’html‘, ’utf-8‘)
html = open('填html文件', 'r', encoding='utf-8').read()
content = MIMEText(html, 'html', 'utf-8')
msg.attach(content)
发送图片
内容与基本内容的不同处有(导入发送邮件需要的所有的库)部分
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
还有在(构建邮件)部分有所不同,而且分两种方法
msg = MIMEMultipart()
msg['Subject'] = Header('发送图片', 'utf-8').encode()
msg['From'] = f'{username} <{username}>'
msg['To'] = '填收件人邮箱'
# 1.图片附件
file1 = open('填图片路径', 'rb').read()
att1 = MIMEText(file1, 'base64', 'utf-8')
att1['Content-Disposition'] = 'attachment; filename="填图片路劲"'
msg.attach(att1)
# 2.以正文的方式发送图片
# 创建图片对象并且添加id值
image_data1 = open('填图片路径', 'rb').read()
image1 = MIMEImage(image_data1)
image1.add_header('Content-ID', '<image1>') # 给图片对象设置图片id
msg.attach(image1)
image_data2 = open('填图片路径', 'rb').read()
image2 = MIMEImage(image_data2)
image2.add_header('Content-ID', '<image2>')
msg.attach(image2)
# 在html代码中通过img标签的src属性来绑定图片:src="cid:图片id"
content = MIMEText('图片效果如下:<br><img src="cid:image1" alt=""> <br> <img src="cid:image2" alt="">', 'html', 'utf-8')
msg.attach(content)
以及没有关闭连接这一步
html常见的标签
<!--html版本说明-->
<!DOCTYPE html>
<!--html标签代表整个网页-->
<html lang="en">
<head>
<meta charset="UTF-8">
<!--设置网页标题-->
<title>小潘的网页</title>
<!--设置网页图标-->
<link rel="icon" href="图片路径">
</head>
<body>
<!--1. 标题标签:h1 ~ h6-->
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>
<!--2.段落标签:p-->
<p>旧人不知我近况,新人不知我过往</p>
<p>你</p>
<p>好</p>
<!--3.其他文字相关标签:span、b(加粗)、i(倾斜)-->
<span>2022-11-21 06:05</span>
<span>北京</span>
<span>|</span>
<span>人民科技账号</span>
<p>展现新时代的精神高度,描绘新征程的<i>恢宏气象</i>,书写生生不息的<b>人民史诗</b>,奏响了新时代<b><i>中国文学</i></b>昂扬激越的主旋律。</p>
<!--4.特殊的文字符号: (空一个空格)、 (空一个像素)、br(换行)
html代码中的换行和空格都是无效的
-->
<p>
  床前明月光,<br><br>
  疑是地上霜。<br><br>
  举头望明月,<br><br>
  低头思故乡。<br><br>
</p>
<!--5.图片标签:img-->
<img src="图片的网址">
<!--浏览器上显示本地图片-->
<img src="图片路径" alt="">
<img src="图片路径" alt="">
<!--邮件中显示本地图片-->
<img src="cid:i1">
<img src="cid:i2">
<!--6.超链接:a
target - 设置跳转方式,默认是 _self
-->
<a target="_blank" href="https://www.baidu.com">百度</a>
<br><br>
<!--7.input标签-->
<!--1)普通文本输入框-->
用户名:<input type="text">
<br><br>
<!--2)密码输入框-->
密 码:<input type="password">
<br><br>
<!--3)按钮-->
<input type="button" value="登录">
       
<input type="button" value="注册">
<br><br>
<!--4)单选按钮-->
<input type="radio" name="a">男
<input type="radio" name="a">女
<br><br>
<!--5)复选按钮-->
<input type="checkbox">记住密码
</body>
</html>