邮件自动发送
一、邮件发送基本流程
-
生活中发送邮件的步骤:注册邮箱账号 --> 打开登录邮箱的网址 – > 输入账号和网址 --> 构建邮件 --> 发送邮件
import smtplib # 联系邮箱服务器,登陆邮箱和发送邮件的模块 # 导入邮件相关的库 from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import MIMEText
-
准备邮箱账号和授权码
username = '3141589453@qq.com' mandate_code = 'swvwqzcbhhzodceb'
-
连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.qq.com')
-
登陆邮箱
con.login(username, mandate_code)
-
构建邮件
# 1.创建邮件对象(创建空邮件) msg = MIMEMultipart() # 2. 添加邮件主题 header = Header('邮件主题','utf-8').encode() # 主题对象 = Header(邮件主题,编码方式) msg['Subject'] = header # 3.设置发件人显示信息 sender = f'{username}<{username}>' msg['From'] = sender # 4.设置收件人信息 receiver = '3141589453@qq.com.com' # qq邮箱 msg['To'] = receiver # 5.构建文件内容 content = MIMEText('邮件正文内容','plain','utf-8') msg.attach(content) # 6. 发送文件 con.sendmail(username,'3141589453@qq.com',msg.as_string()) # 7.关闭连接 con.quit()
二、添加文件附件
-
准备账号
import smtplib # 联系邮箱服务器,登陆邮箱和发送邮件的模块 # 导入邮件相关的库 from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import MIMEText username = '3141589453@qq.com' mandate_code = 'swvwqzcbhhzodceb'
-
连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.qq.com')
-
完成邮箱登录
con.login(username, mandate_code)
-
构建邮箱
msg = MIMEMultipart() # 1.主题 header = Header('邮件主题','utf-8').encode() # 主题对象 = Header(邮件主题,编码方式) msg['Subject'] = header # 2. 收件人 receiver = '3141589453@qq.com.com' msg['To'] = receiver # 3. 发件人 sender = f'{username}<{username}>' msg['From'] = sender # 4.正文 # plain -- 普通文本 content = MIMEText('具体内容请查收附件','plain','utf-8') msg.attach(content) # 5.添加附件 file1 = open('files/2022Python数据分析就业班大纲-0901.pdf','rb').read() # base64 -- 文件 att1 = MIMEText(file1, 'base64', 'utf-8') att1['Content-Disposition'] = 'attachment; filename="pyecharts.pdf"' # attachment附件 msg.attach(att1) file2 = open('files/08-Excel数据看板.xlsx','rb').read() att2 = MIMEText(file2, 'base64', 'utf-8') # base64 附件内容 att2['Content-Disposition'] = 'attachment; filename="excel.xlsx"' msg.attach(att2) # 6.发送邮件 con.sendmail(username, '3141589453@qq.com', msg.as_string()) con.quit()
三、发送富文本
-
准备账号
import smtplib # 联系邮箱服务器,登陆邮箱和发送邮件的模块 # 导入邮件相关的库 from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import MIMEText username = '3141589453@qq.com' mandate_code = 'swvwqzcbhhzodceb'
-
连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.qq.com')
-
完成邮箱登录
con.login(username, mandate_code)
-
构建邮箱
msg = MIMEMultipart() msg['Subject'] = Header('发送富文本', 'utf-8').encode() # 设置邮件发送者 msg['From'] = f'{username} <{username}>' # 设置邮件接收者 msg['To'] = '3141589453@qq.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, '1901035005@qq.com', msg.as_string()) con.quit()
四、发送图片
-
准备账号和授权码
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 username = '3141589453@qq.com' mandate_code = 'swvwqzcbhhzodceb'
-
连接服务器
con = smtplib.SMTP_SSL('smtp.qq.com')
-
登陆邮箱
con.login(username, mandate_code)
-
准备邮箱
msg = MIMEMultipart() msg['Subject'] = Header('发送图片', 'utf-8').encode() # 设置邮件发送者 msg['From'] = f'{username} <{username}>' # 设置邮件接收者 msg['To'] = '3141589453@qq.com'
-
发送图片
# 1)图片附件 file1 = open('file/0.jpg', 'rb').read() att1 = MIMEText(file, 'base64', 'utf-8') att1['Content-Disposition'] = 'attachment; filename = "load.jpeg"' msg.attach(aat1) # 2)以正文方式发送图片 # 创建图片对象并且添加id值 image_data = open('file/OIP-C.png', 'rb').read() image = MIMEImage(image_data) image.add_header('Content-ID', '<imagge1>') #给图片对象设置图片的id msg.attach(image) image_data2 = open('files/0.jpg', '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">', 'html', 'utf-8') # msg.attach(content) # 发送两张图片 content = MIMEText('图片效果如下:<br><img src="cid:image1"alt=""><br><img src="cid:image2 alt="">', 'html','utf-8') msg.attach(content)
五、前端开发相关基础知识
-
前端开发知识
# 前端三大技术:HTML、CSS、JS # HTML - 给页面提供内容(通过不同的标签来给网页提供不同的功能) # CSS - 负责网页内容的样式和布局 # JS - 负责网页内容变化 # 1.HTML - 给网页提供内容 ''' HTML是通过不同的标签来给网页提供不同的功能的 1) 标签语法 a. 双标签: <标签名 属性名1="属性值1" 属性名2="属性值2" ...>标签内容</标签名> b. 单标签: <标签名 属性名1="属性值1" 属性名2="属性值2" ...> 或者 <标签名 属性名1="属性值1" 属性名2="属性值2" .../> 2) 常用标签: 标题标签: h1、h2、h3、h4、h5、h6 段落标签: p 文字相关其他标签: span、b、i 换行标签: br 图片标签: img 超链接: a 按钮标签: button、input 输入框: input 单选、复选按钮: input '''
六、常见的标签
-
html
常见的标签<!--!--html版本说明--> <!DOCTYPE html> <!--!--html标签代表整个网页--> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 设置网页标题 --> <title>GTitle</title> <!-- 设置网页图标 --> <link rel="icon" href="files/0.jpg"> </head> <body> <!-- 1.标题标签: h1~h6 --> <h1>一级标题</h1> <h2>二级标题</h2> <h3>三级标题</h3> <h4>四级标题</h4> <h5>五级标题</h5> <h6>六级标题</h6> <!-- 2.段落标签: p --> <p>段落文字1</p> <p>段落文字2</p> <!-- 3.其他文字相关标签: span、b(加粗)、i(倾斜) --> <span>2022-11-21 16:50</span> <span>北京</span> <span>|</span> <span>人民科技账号</span> <p>展现新时代的<i>精神高度</i>, 描绘新征程的<b>恢弘气象</b></p> <!-- 4.特殊的文字符号:   - 空一个像素、 - 空一个像素、br html代码中的换行和空格都是无效的 --> <p>   欲买桂花同载酒,<br> 只可惜古人何时再见了 </p> <!-- 5.图片标签: img --> <!-- 浏览器上显示本地图片 --> <img src="files/hutao.jpeg" alt=""> <img src="o.jpg" alt=""> <!-- 邮件中显示本地图片 --> <img src="cid:i1"> <img src="cid:i2"> <!-- 6.超链接 :a target - 设置跳转方式,默认是——self --> <a target="_blank" href="https://www.baidu.com">百度</a> <!-- 7.input标签 --> <!-- 1)普通文本输入框 --> 用户名:<input type="text"> <!-- 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>
七、发送富文本2(掉用 html
标签)
-
准备账号和授权码
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 username = '3141589453@qq.com' mandate_code = 'swvwqzcbhhzodceb'
-
连接服务器
con = smtplib.SMTP_SSL('smtp.qq.com')
-
登陆邮箱
con.login(username, mandate_code)
-
构建邮件
msg = MIMEMultipart() msg['Subject'] = Header('发送富文本', 'utf-8').encode() msg['From'] = f'{username} <{username}>' msg['To'] = '3141589453@1qq.com'
-
发送富文本
image_data1 = open('files/load.jpeg', 'rb').read() image1 = MIMEImage(image_data1) image1.add_header('Content-ID', '<i1>') msg.attach(image1) image_data2 = open('0.jpg', 'rb').read() image2 = MIMEImage(image_data2) image2.add_header('Content-ID', '<i2>') msg.attach(image2) # html - 富文本(超文本) # MIMEText(html代码, 'html', 'utf-8') html = open('00706常见的标签.html', 'r', encoding='utf-8').read() content = MIMEText(html, 'html', 'utf-8') msg.attach(content) con.sendmail(username, '3141589453@qq.com', msg.as_string()) con.quit()