目录

  • 一. 邮件发送基本流程
  • 二. 添加文件附件
  • 三. 发送富文本
  • 四. 发送图片
  • 五. 认识前端
    • HTML
  • ————————— 获取邮箱授权码—————————

一. 邮件发送基本流程

生活中发送邮件的步骤:

注册邮箱信息 —> 打开登录邮箱的网址 —> 输入账号密码完成登录 —> 构建邮件 —> 发送邮件

  1. 导入发送邮件需要的所有的库

    # 连接邮箱服务器,登录邮箱和发送邮件的模块
    import smtplib# 导入邮件相关的库
    from email.mime.multipart import MIMEMultipart
    from email.header import Header
    from email.mime.text import MIMEText
    
  2. 准备邮箱账号和授权码

    username = ‘登录邮箱账号

    mandate_code = ‘授权码

    授权码获取方式见文末

  3. 连接邮箱服务器

    con = smtplib.SMTP_SSL(‘smtp.xx.com’)

    (固定内容,xx中填写登录的邮箱,例如:使用qq邮箱登录——‘smtp.qq.com’,使用163邮箱登录——‘smtp.163.com’)

  4. 登录邮箱,输入账号和授权码

    con.login(uesrname, 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[‘To’] = receiver

    5)构建邮件正文

    content = MIMEText(‘邮件正文内容’, ‘plain’, ‘utf-8’)

    msg.attach(content)

  6. 发送邮件

    con.sendmail(username, '收件人邮箱 ', msg.as_string())

  7. 关闭邮箱

    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> —— 在内容后换行

  • 特殊的文字符号:&emsp;&nbsp;

    &emsp;: 空一个空格

    &nbsp;: 空一个像素

  • 图片标签: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:(空一个空格) 、&nbsp;(空一个像素)、br(换行)html代码中的换行和空格都是无效的--><p>&emsp;&emsp;床&nbsp;前&nbsp;明&nbsp;月&nbsp;光,<br>&emsp;&emsp;疑&nbsp;似&nbsp;地&nbsp;上&nbsp;霜。<br>&emsp;&emsp;举&nbsp;头&nbsp;望&nbsp;明&nbsp;月,<br>&emsp;&emsp;低&nbsp;头&nbsp;思&nbsp;故&nbsp;乡。<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>密&emsp;码<input type="password"><br><br><!--   3)按钮     --><input type="button" value="登录">&emsp;&emsp;&emsp;&emsp;<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服务开启 —> 点击生成授权码、

发送短信进行验证 —> 短信发送完毕后点击我已发送

生成授权码,并进行复制(一般情况下,若不修改密码或者更换手机,授权码将一直有效,直到下一次进行短信验证)

day06 代码实现邮件自动发送相关推荐

  1. day6邮件自动发送

    一.邮件发送基本流程 生活中发送邮件的步骤: 注册邮箱的账号 打开登录邮箱的网址(连接邮箱服务器) 输入账号和密码完成登录 构建邮件 发送邮件 # 连接邮箱服务器,登录邮箱和发送邮件的模块 impor ...

  2. 第二十三天-邮件自动发送

    第二十三天-邮件自动发送 一.邮件自动发送基本流程 准备工作 准备邮箱账号和密码(密码有时候不一定是邮箱密码,有可能是授权码) 登陆邮箱 1)连接邮箱服务器 import smtplib con = ...

  3. 向论文作者要代码的邮件怎么写

    [Reference] 找人要代码的邮件怎么写

  4. 找人要代码的邮件怎么写

    http://bbs.malab.cn/forum.php?mod=viewthread&tid=1294 在研究中,我们尽量去找那种有公开代码和数据的论文读,因为论文很难把实验的每个细节都描 ...

  5. 自动化办公【邮件自动发送】

    自动化办公[邮件自动发送] 一.邮件发送基本流程 1.准备一个邮箱账号和密码(授权码) 账号:417xxx359@qq.com 授权码:在qq邮箱设置里面stml打开得到授权码 2.连接邮箱服务器(相 ...

  6. 几行 Python 代码实现邮件解析,超赞~

    作者 | Yunlor 来源 | CSDN博客 前言 如何通过python实现邮件解析?邮件的格式十分复杂,主要是mime协议,本文主要是从实现出发,具体原理可以自行研究. 一.安装 通过mailgu ...

  7. zabbix生成资源性能报表+邮件自动发送

    使用python调去zabbix数据库groups,hosts_groups,hosts,items,trends,trends_uint表格中的数据组个而成的字典形式,并将其写入excel表格中. ...

  8. python几行代码实现邮件解析

    前言 如何通过python实现邮件解析?邮件的格式十分复杂,主要是mime协议,本文主要是从实现出发,具体原理可以自行研究. 一.安装 通过mailgun开源的Flanker库实现邮件解析.该库包含了 ...

  9. 科研经验002:如何礼貌地要代码的邮件模板

    现在AI领域开源的代码还挺多的,如果参考的论文没有开源代码的话,可以发邮件问作者要,论文通常都会有作者的邮箱,作者一般还是挺乐意分享的,毕竟自己的工作还是有关注度的,citiation可以增加.但是问 ...

最新文章

  1. windows10配置jenkins
  2. s5 android5.0内存泄漏,android-最初从位图泄漏了未引用的byte [],但被回收的()导致内存泄漏(直到活动停止)...
  3. 【正一专栏】世界杯十六强猜想
  4. 在python中如何比较两个float类型的数据是否相等
  5. python2还是3好_学Python2还是python3 究竟哪个好
  6. linux中改localhome名称,修改 /var/lib/locales/supported.d/local 文件(使用 locale -a 命令查看系統中所有已配置的 locale)...
  7. android创建wifi热点,Android 4.0.3创建wifi热点API
  8. OC中不可变数组的常用方法
  9. 谁说不能用 Python开发企业应用?
  10. springboot和springframework以及jdk版本的对应关系
  11. 手机上做c语言作业的软件下载,手机c语言编程软件
  12. matlab做拉普拉斯反演,拉普拉斯变换反演
  13. 你是否有过出现图片有色差色偏的问题(python用matplotlib显示opencv绘制的图像)
  14. 证件照电子版该如何在手机上制作
  15. 使用BarTender连接Excel文件批量打印图片
  16. laravel文档链接
  17. Gerrit报错:Permission denied (publickey)
  18. Js 中null 和underfined的区别
  19. cisco3560交换机的策略路由的设置
  20. python字典的删除(简介明了)

热门文章

  1. 测试工程师苦逼时刻,Android 谈谈自动化测试
  2. 获取ckeditor的内容
  3. Qt5简单函数计算器
  4. 搭档之家| 生活中的“破窗理论”
  5. Trojan-Banker.Win32.Banker (2)
  6. failed to findInstances, Micro-service does not exist 问题排查
  7. 请教DELPHI问题...
  8. Python自动生成表情包 斗图再无对手!
  9. 中文分词之11946组同义词
  10. win10 10586 正式版安装sql2000(笔记)