邮件发送基本流程

邮件发送基本流程

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.特殊的文字符号:&emsp;(空一个空格)、&nbsp;(空一个像素)、br(换行)
            html代码中的换行和空格都是无效的
        -->
        <p>
            &emsp;&emsp;床前明月光,<br><br>
            &emsp;&emsp;疑是地上霜。<br><br>
            &emsp;&emsp;举头望明月,<br><br>
            &emsp;&emsp;低头思故乡。<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)密码输入框-->&emsp;码:<input type="password">
        <br><br>

        <!--3)按钮-->
        <input type="button" value="登录">
        &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
        <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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值