day06 代码实现邮件自动发送

目录

    • 一. 邮件发送基本流程
    • 二. 添加文件附件
    • 三. 发送富文本
    • 四. 发送图片
    • 五. 认识前端
      • 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服务开启 —> 点击生成授权码、

在这里插入图片描述

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

在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45571.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现自动发送邮件 - 自动抓取Blog中留言的邮箱并发送邮件

Python实现自动发送邮件 - 自动抓取博客/网站中留言的邮箱并发送邮件 背景脚本要解决的问题&#xff1a;实现方法代码及解析1. AutoSendEmailByBlogComments.py2. FileOperation.py3. SendEmail.py 备注&#xff1a;邮箱SMTP设置其它好玩的Python脚本 博主热门文章推荐&#xf…

python自动发送邮件实现

目录 1 前言2 准备工作2.1 电子邮件的基础知识。2.2 python邮件库2.3 邮箱设置 3 python实现邮件自动发送3.1 SMTP()和send()方法介绍3.2 python实现实例 参考信息 1 前言 python功能强大&#xff0c;可以实现我们日常办公的很多任务。诸如批量处理word,excel,pdf等等文件&…

VBA使用Outlook自动发送邮件

↓↓↓欢迎关注我的公众号&#xff0c;在这里有数据相关技术经验的优质原创文章↓↓↓ 基础版本–能自动发送就是成功 利用VBA使用Outlook自动发送邮件&#xff0c;代码及注释如下&#xff1a; Sub send_mail()Dim ObjOL As Object Dim itmNewMail As Outlook.MailItem Dim…

Python实现自动发送邮件

最近比较闲的慌&#xff0c;在自己学习Python爬虫&#xff0c;学到了用Python发送邮件&#xff0c;觉得这个可能以后比较实用。以下项目用QQ邮箱为例。 需要用到的模块&#xff1a; smtplib&#xff0c;email 提醒&#xff01;QQ 邮箱一般默认关闭SMTP服务&#xff0c;我们得…

chatgpt赋能python:Python写模拟器脚本

Python写模拟器脚本 Python是一种强大的编程语言&#xff0c;适用于各种任务&#xff0c;包括模拟器编写。模拟器是一种软件程序&#xff0c;能够模拟硬件或软件系统的行为。这篇文章将介绍Python编写模拟器脚本时需要关注的一些关键点。 为什么选择Python编写模拟器脚本 Py…

chatgpt赋能python:Python在线模拟器:让编程变得更加轻松

Python 在线模拟器&#xff1a;让编程变得更加轻松 介绍 Python 在线模拟器是一个非常实用的工具&#xff0c;它可以帮助用户直接在浏览器中测试和运行 Python 代码。在线模拟器的出现简化了编程过程&#xff0c;不需要安装 Python IDE 等软件&#xff0c;只需要有一台连接互…

老子简介(函谷关道德经)

老子简介 老子(约前580~前500年之后)&#xff0c;姓李名耳。字聃&#xff0c;春秋时期楚国人&#xff0c;道家学派创始人。曾在东周国都洛邑(今河南洛阳)任守藏史(相当于国家图书馆馆长)。他博学多才&#xff0c;晚年乘青牛西去&#xff0c;在函谷关前写成《道德经》。 老子主…

【天天读书】《道德经》第十六章

《道德经》第十六章 [原文] 致虚极,守静笃①; 万物并作②,吾以观复③。 夫物芸芸④,各复归其根。 归根⑤曰静,静曰⑥复命⑦。 复命曰常⑧,知常曰明⑨。 不知常,妄作凶。 知常容⑩,容乃公, 公乃全⑾,全乃天⑿, 天乃道,道乃久, 没身不殆。 [译文] 尽力…

论文学习——VideoGPT

论文学习——VideoGPT: Video Generation using VQ-VAE and Transformers 原文链接&#xff1a;https://arxiv.org/abs/2104.10157 1. 设计思路 不同种类的生成模型在一下多个维度各有权衡&#xff1a;采样速度、样本多样性、样本质量、优化稳定性、计算需求、评估难易程度等…

拥抱变化 | SAM发布后,大模型时代的算法研发如何发展?

作者 | 刀刀宁 编辑 | 汽车人 原文链接&#xff1a;https://zhuanlan.zhihu.com/p/619797754 点击下方卡片&#xff0c;关注“自动驾驶之心”公众号 ADAS巨卷干货&#xff0c;即可获取 点击进入→自动驾驶之心【AIGC】技术交流群 大模型时代&#xff0c;是危机时代。 但危机&a…

【Midjourney实操】逼真到颤抖!保姆级教程教生成效果炸裂的图片

最近&#xff0c;许多由Midjourney V5创作的画作在网络上引起了热议&#xff0c;许多人惊呼&#xff1a;人类画师&#xff0c; 插画师&#xff0c; 设计师统统活不下去了&#xff01; 比如下面这张中国情侣的画作&#xff1a; 因为前段时间这个很火&#xff0c; 我跟着同样的p…

DDR5市场迎来拐点 Rambus再次先发制人

在数字化时代&#xff0c;行业用户对于算力的追求是无止境的。除了像CPU这样的核心部件以外&#xff0c;内存的容量与带宽也是提升算力不可忽视的重要一环。近日&#xff0c;Rambus率先推出6400MT/s DDR5寄存时钟驱动器&#xff0c;旨在进一步提升服务器内存性能。 算力驱动创新…

高质量WordPress下载站模板5play主题源码

介绍&#xff1a; 5play下载站是由国外站长开发的一款WordPress主题&#xff0c;主题简约大方&#xff0c;为v1.8版本&#xff0c; 该主题模板中包含了上千个应用&#xff0c;登录后台以后只需要简单的三个步骤就可以轻松发布apk文章&#xff0c; 我们只需要在WordPress后台…

当月薪3000变成万元进账,ChatGPT成就前女友视野中的闪耀新星

在生活的曲折丛林中&#xff0c;每个人都渴望抓住那一抹光明。突然&#xff0c;你发现了一个隐藏的秘密武器&#xff0c;它能让你趟过迷雾&#xff0c;瞥见成功的彼岸。ChatGPT&#xff0c;这个神秘的力量&#xff0c;将领导你跃过层层障碍&#xff0c;找到属于你的辉煌篇章。马…

【前端】vue学习5 : vue + ElementUI

vueelementUI 项目搭建 命令行需要管理员权限。 根据之前创建vue-cli项目一样再来一遍 创建项目。 1、创建一个名为 hello-vue 的工程 vue init webpack vue-element D:\IdeaProjects\vue>vue init webpack vue-element ‘git’ &#xfffd;&#xfffd;&#xfffd;&…

理解Window和WindowManager(一)

理解Window和WindowManager(一) Window是一个抽象类,它的具体实现是PhoneWindow,创建一个WindowManager就可以创建一个Window&#xff0c; Window的具体实现位于WindowManagerService中,WindowManager和WindowManagerService是一个IPC过程 为什么使用Window 首先就是Window…

最牛最全的 Postman 实现 API 自动化测试教程

【 文章末尾给大家留下了大量的福利】 背景介绍 相信大部分开发人员和测试人员对 postman 都十分熟悉&#xff0c;对于开发人员和测试人员而言&#xff0c;使用 postman 来编写和保存测试用例会是一种比较方便和熟悉的方式。但 postman 本身是一个图形化软件&#xff0c;相对较…

Python自动化办公文章,开放下载共97页PDF

发现很多读者对python自动化办公&#xff08;python操作Excel、Word、PDF、PPT&#xff09;的文章都很喜欢&#xff0c;并希望能够应用到工作中去。 因此&#xff0c;我直接写了一个文档《python自动化办公系列文章》供大家学习参考&#xff0c;已经整理成册(如下图所示)&…

RPA、低代码、流程挖掘纷纷引入生成式AI,超自动化迎来LLM时代

3月7日&#xff0c;有个名为Kognitos智能RPA厂商拿到了675万美元融资&#xff0c;自送绰号“生成式AI自动化”先驱。其主要业务&#xff0c;是提供类似ChatGPT的对话式功能&#xff0c;为客户提供更人性化的智能自动化服务。 对于Kognitos的绰号&#xff0c;业内人士看后呵呵一…

Win10、Win11跳过联网注册微软账户激活方法

第一次开机之后&#xff0c;跳过前面两个设置&#xff0c;我们来到联网界面&#xff0c;和win10不同的是&#xff0c;这个界面并没有预设跳过的按钮&#xff0c;开机重启也无法直接跳过这个步骤&#xff0c;所以需要通过特殊方式避过这个环节。大家可以先尝试使用下面的方法&am…