目录
- 一. 邮件发送基本流程
- 二. 添加文件附件
- 三. 发送富文本
- 四. 发送图片
- 五. 认识前端
- HTML
- ————————— 获取邮箱授权码—————————
一. 邮件发送基本流程
生活中发送邮件的步骤:
注册邮箱信息 —> 打开登录邮箱的网址 —> 输入账号密码完成登录 —> 构建邮件 —> 发送邮件
-
导入发送邮件需要的所有的库
# 连接邮箱服务器,登录邮箱和发送邮件的模块 import smtplib# 导入邮件相关的库 from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import MIMEText
-
准备邮箱账号和授权码
username = ‘登录邮箱账号’
mandate_code = ‘授权码’
授权码获取方式见文末
-
连接邮箱服务器
con = smtplib.SMTP_SSL(‘smtp.xx.com’)
(固定内容,xx中填写登录的邮箱,例如:使用qq邮箱登录——‘smtp.qq.com’,使用163邮箱登录——‘smtp.163.com’)
-
登录邮箱,输入账号和授权码
con.login(uesrname, mandate_code)
-
构建邮件
1)创建邮件对象(创建空邮件)
msg = MIMEMultipart()
2)添加邮件主题
header = Header(‘邮件主题’, ‘utf-8’).encode()
msg[‘Subject’] = header
3)设置发件人显示信息
sender = f’{username}<{username}>’
msg[‘From’] = sender
4)设置收件人信息
receiver = ’ 收件人邮箱 ’
msg[‘To’] = receiver
5)构建邮件正文
content = MIMEText(‘邮件正文内容’, ‘plain’, ‘utf-8’)
msg.attach(content)
-
发送邮件
con.sendmail(username, '收件人邮箱 ', msg.as_string())
-
关闭邮箱
con.quit()
案例:
# 0. 导入发送邮件需要的所有的库
# 连接邮箱服务器,登录邮箱和发送邮件的模块
import smtplib# 导入邮件相关的库
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText# 1. 准备邮箱账号和授权码
username = '36677@qq.com' # 随便敲的,勿深究,请输入自己所需登录的邮箱账号
mandate_code = 'sdfggfd' # 复制授权码# 2. 连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.qq.com') # 连接qq邮箱服务器# 3.登录邮箱,输入账号和授权码
con.login(username, mandate_code)# 4. 构建邮件
# 1)创建邮件对象(创建空邮件)
msg = MIMEMultipart()# 2)添加邮件主题
header = Header('邮件主题', 'utf-8').encode()
msg['Subject'] = header# 3)设置发件人显示信息
sender = f'{username}<{username}>'
msg['From'] = sender# 4)设置收件人信息
receiver = 'yu@163.com' # 收件人邮箱
msg['To'] = receiver# 5)构建邮件正文
content = MIMEText('邮件正文内容', 'plain', 'utf-8')
msg.attach(content)# 5.发送邮件
con.sendmail(username, 'yu@163.com', msg.as_string())# 6.关闭邮箱
con.quit()
发送邮件结果:
二. 添加文件附件
file = open(‘xx1’, ‘rb’).read()
att = MIMEText(file1, ‘base64’, ‘utf-8’)
att[‘Content-Disposition’] = ‘attachment; filename=“xx2”’
msg.attach(att)xx1——需要发送为附件的文件
xx2——发送为附件的名字,最好不要是文字,可能会无法显示
案例:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText# 1.准备账号和授权码
username = '16677@qq.com'
mandate_code = 'dghjkk'# 2.连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.qq.com')# 3.完成邮箱登录
con.login(username, mandate_code)# 4.构建邮件
msg = MIMEMultipart()
# 1)主题
header = Header('发送附件', 'utf-8')
msg['Subject'] = header# 2)收件人
receiver = 'yu@163.com'
msg['To'] = receiver# 3)发件人
sender = f'{username}<{username}>'
msg['From'] = sender# 4)正文
content = MIMEText('请查看附件', 'plain', 'utf-8')
msg.attach(content)# 5) ---------------------------添加附件--------------------------------
file1 = open('files/smtplib 邮件自动发送.pdf', 'rb').read()
att1 = MIMEText(file1, 'base64', 'utf-8')
att1['Content-Disposition'] = 'attachment; filename="smtplib.pdf"'
msg.attach(att1)file2 = open('files/day01.md', 'rb').read()
att2 = MIMEText(file2, 'base64', 'utf-8')
att2['Content-Disposition'] = 'attachment; filename="day01.md"'
msg.attach(att2)
# --------------------------------------------------------------------# 5.发送邮件
con.sendmail(username, 'yu@163.com', msg.as_string())# 6.关闭邮箱
con.quit()
发送附件结果:
三. 发送富文本
html
– 富文本
MIMEText(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 MIMETextusername = '36677@qq.com'
mandate_code = 'sdfgh'con = smtplib.SMTP_SSL('smtp.qq.com')con.login(username, mandate_code)# 1.构建邮件
msg = MIMEMultipart()msg['Subject'] = Header('发送富文本', 'utf-8').encode()
msg['From'] = f'{username}<{username}>'
msg['To'] = 'yu7@163.com'# --------------------发送富文本-----------------------
# html -- 富文本
# MIMEText(html代码, 'html', 'utf-8')
html = open('files/demo.html', 'r', encoding='utf-8').read()
content = MIMEText(html, 'html', 'utf-8')
msg.attach(content)
# ---------------------------------------------------con.sendmail(username, 'yu@163.com', msg.as_string())con.quit()
html代码:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div style="width:674px;"><img src="http://mobile.12306.cn/weixin/resources/weixin/images/mail/mail_top.jpg" alt=""><br><b>尊敬的旅客:</b><p>您好!</p><p><b>您购买的11月13日G8733次列车因故停运,需在12月12日前登录12306网站或到铁路车站按规定办理未乘区间退票手续,建议优先选择12306网站办理退票手续。</b></p><p>感谢您使用中国铁路客户服务中心网站<a href="https://www.12306.cn/index/">12306.cn</a>! 本邮件由系统自动发出,请勿回复。</p><p><img src="http://mobile.12306.cn/weixin/resources/weixin/images/mail/mail_logo.jpg" alt="">中国铁路客户服务中心</p><p>2022年11月09日</p><img src="http://mobile.12306.cn/weixin/resources/weixin/images/mail/mail_line.jpg" alt=""></div></body>
</html>
四. 发送图片
# 1)以图片附件的方式发送图片
file1 = open('files/img04.jpg', 'rb').read()
att1 = MIMEText(file1, 'base64', 'utf-8')
att1['Content-Disposition'] = 'attachment; filename="img04.jpg"'
msg.attach(att1)# 2)以正文的方式发送图片
# 创建图片对象并添加id值
image_data = open('files/img01.jfif', 'rb').read()
image = MIMEImage(image_data)
image.add_header('Content-ID', '<image1>') # 给图片对象设置图片id
msg.attach(image)# 在html代码中通过img标签的src属性来绑定图片<img src="cid:image1", alt="">
content = MIMEText('图片效果如下:<br><img src="cid:image1", alt="">, 'html', 'utf-8')
msg.attach(content)
案例:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMETextfrom email.mime.image import MIMEImage# 1. 准备邮箱账号和授权码
username = '36677@qq.com'
mandate_code = 'dfghjh'# 2. 连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.qq.com')# 3.登录邮箱,输入账号和授权码
con.login(username, mandate_code)# 4. 构建邮件
msg = MIMEMultipart()msg['Subject'] = Header('发送图片', 'utf-8').encode()
msg['From'] = f'{username}<{username}>'
msg['To'] = 'yu@163.com'# ------------发送图片-------------
# 1)图片附件
file1 = open('files/img04.jpg', 'rb').read()
att1 = MIMEText(file1, 'base64', 'utf-8')
att1['Content-Disposition'] = 'attachment; filename="img04.jpg"'
msg.attach(att1)# 2)以正文的方式发送图片
# 创建图片对象并添加id值
image_data = open('files/img01.jfif', 'rb').read()
image = MIMEImage(image_data)
image.add_header('Content-ID', '<image1>')
msg.attach(image)image_data2 = open('files/img04.jpg', 'rb').read()
image2 = MIMEImage(image_data2)
image2.add_header('Content-ID', '<image2>') # 给图片对象设置图片id
msg.attach(image2)# 在html代码中通过img标签的src属性来绑定图片<img src="cid:image1", alt="">
content = MIMEText('图片效果如下:<br><img src="cid:image1", alt=""><img src="cid:image2", alt="">', 'html', 'utf-8')
msg.attach(content)con.sendmail(username, 'yu@163.com', msg.as_string())
con.quit()
发送图片结果图:
五. 认识前端
前端三大技术:HTML、CSS、JS
HTML — 给网页提供内容(通过不同的标签给网页提供不同的功能)
CSS — 负责网页内容样式的布局
JS — 负责网页内容变化
HTML
—— 给网页提供内容(通过不同的标签给网页提供不同的功能)
1)标签语法
a. 双标签:<标签名 属性名1=“属性值1” 属性名2=“属性值2” …>标签内容</标签名>
b. 单标签:<标签名 属性名1=“属性值1” 属性名2=“属性值2” …> 或者
<标签名 属性名1=“属性值1” 属性名2=“属性值2” … />
2)常用标签
-
标题标签:h1、h2、h3、h4、h5、h6
对应 1~6 号标题:
<h1>一号标题</h1>
-
段落标签:p
<p>段落内容</p>
一对 p 标签表示一段
-
文字相关其他标签:span、b、i
<span>内容</span>
—— 如果没有换行标签存在,多个span标签中的内容会在一行显示<b>加粗文字</b>
<i>倾斜文字</i>
<i><b>倾斜并加粗文字</b></i>
-
换行标签:br
内容
<br>
—— 在内容后换行 -
特殊的文字符号:
 
、
 
: 空一个空格
: 空一个像素 -
图片标签:img
<img src='图片地址'>
-
超链接:a
<a target="_blank" href='https://www.baidu.com'>百度</a>
——点击百度跳转至百度页面
-
按钮:input、button
<input type='text'>
—— 普通文本输入框<input type='button' value='登录'>
—— 登录按钮 -
输入框:input
用户名 <input type='text'>
—— 用户名输入框(普通输入框)密码 <input type='password'>
—— 密码输入框 -
单选、复选按钮:input
<input type='radio' name='a'> 男
<input type='radio' name='a'> 女
—— 单选框(男或女)
<input type='chexkbox'> 记住密码
—— 复选框
html代码(发送图片所使用的html文件):
<!--html版本说明-->
<!DOCTYPE html><!--html标签代表整个网页-->
<html lang="en"><head><meta charset="UTF-8"><!--设置网页标题--><title>test网页</title><!-- 设置网页图标 --><link rel="icon" href="img03.jpg"></head><body><!-- 1.标题标签:h1~h2--><h1>我是标题1</h1><h2>标题2</h2><!-- 2.段落标签:p --><p>展现新时代的精神高度,描绘新征程的恢宏气象,书写生生不息的人民史诗,奏响了新时代中国文学昂扬激越的主旋律。</p><p>初冬的北京,中央歌剧院内群星璀璨、暖意融融,“中国文学盛典·鲁迅文学奖之夜”大幕开启</p><!-- 3.其他文字标签:span、p、i、b --><span>2022-11-21 06:05</span><span>北京</span><span>|</span><span>人民科技账号</span><p>展现新时代的<i><b>精神高度</b></i>,描绘新征程的<i>恢宏气象</i>,书写生生不息的<b>人民史诗</b>,奏响了新时代中国文学昂扬激越的主旋律。</p><!-- 4.特殊的文字符号:&emsp:(空一个空格) 、 (空一个像素)、br(换行)html代码中的换行和空格都是无效的--><p>  床 前 明 月 光,<br>  疑 似 地 上 霜。<br>  举 头 望 明 月,<br>  低 头 思 故 乡。<br></p><!-- 5.图片标签:img --><img src="https://imgpolitics.gmw.cn/attachement/jpg/site2/20221121/f44d305ea48e24e50a3c10.jpg" alt=""><!-- 浏览器上显示本地图片--><img src="img02.jpg" alt=""><!-- 邮件中显示本地图片--><img src="cid:i1"><img src="cid:i2"><br><!-- 6.超链接:a --><a target="_blank" href="https://www.baidu.com">百度</a><!-- 7. input --><!-- 1)普通文本输入框 --><input type="text"><br><br><!-- 2)密码输入框 -->用户名 <input type="text"><br><br>密 码<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><!-- 5)复选按钮 --><input type="checkbox">记住密码</body>
</html>
html效果图:
————————— 获取邮箱授权码—————————
登录邮箱 —> 找到设置 —> 点击账户
找到 pop3/SMTP服务
并开启 —> 点击生成授权码、
发送短信进行验证 —> 短信发送完毕后点击我已发送
生成授权码,并进行复制(一般情况下,若不修改密码或者更换手机,授权码将一直有效,直到下一次进行短信验证)