Day6-邮件自动发送

一、邮件发送基本流程

1.准备邮箱账号和密码(授权码)

账号:2440490935@qq.com

授权码:xxxxxxxx

2.连接邮箱服务器(相当于打开邮箱网站)

import smtplib
connect = smtplib.SMTP_SSL('smtp.qq.com',465)

3.登录邮箱账号

connect.login('2440490935@qq.com','xxxxxxxx')
print('邮箱登录成功!')

4.准备邮件内容(写邮件)

from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
# 1)创建空的邮件对象
mail = MIMEMultipart()

# 2)设置邮件主题
mail['Subject'] = Header('summer周报','utf-8').encode()

# 3)设置收件人信息
mail['To'] = '417802359@qq.com'

# 4)设置发件人信息
mail['From'] = 'summer <2440490935@qq.com>'

# 5)正文
# 正文内容:plain —— 普通文字内容、html——超文本
text = MIMEText('亲爱的朋友,好久不见','plain','utf-8')
mail.attach(text)

5.发送邮件

connect.sendmail('2440490935@qq.com','417802359@qq.com',mail.as_string())

6.关闭连接(关闭网站)

connect.quit()

二、发送附件

import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText

# 建立连接
connect = smtplib.SMTP_SSL('smtp.qq.com',465)

# 登录邮箱
connect.login('2440490935@qq.com','xxxxxxxx')

mail = MIMEMultipart()
mail['Subject'] = Header ('发送邮件','utf-8').encode()
mail['To'] = '417802359@qq.com'
mail['From'] = 'summer <2440490935@qq.com>'

# plain —— 普通文本;html —— 超文本;base64 —— 二进制文件(用于添加附件)
text = MIMEText('亲爱的朋友,好久不见......','plain','utf-8')
mail.attach(text)

1.打开文件获得文件对象

f1 = open('files/f11.pdf','rb')
f2 = open('files/p1.jpeg','rb')

2.创建附件对应的文本对象

a1 = MIMEText(f1.read(),'base64','utf-8')
a2 = MIMEText(f2.read(),'base64','utf-8')

3.设置附件信息

a1['Content-Disposition'] = "attachment;filename='data1.pdf'"
a2['Content-Disposition'] = "attachment;filename='data2.jpeg'"

4.将附件添加邮件中

mail.attach(a1)
mail.attach(a2)

5.发送邮件

connect.sendmail('2440490935@qq.com','417802359@qq.com',mail.as_string())
connect.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
# 建立连接
connect = smtplib.SMTP_SSL('smtp.qq.com',465)
# 登录邮箱
connect.login('2440490935@qq.com','xxxxxxxx')

mail = MIMEMultipart()
mail['Subject'] = Header ('发送邮件','utf-8').encode()
mail['To'] = '417802359@qq.com'
mail['From'] = 'summer <2440490935@qq.com>'

1.准备图片

f1 = open('files/p1.jpeg','rb')

2.创建图片对象

image1 = MIMEImage(f1.read())

3.给图片添加id

image1.add_header('Content-ID','<i1>')

4.将图片关联到邮件中

mail.attach(image1)

5.在正文中使用图片

# 正文添加图片的格式:<img src="cid:图片id值" width="宽度">
# html中<br>就是换行
text = MIMEText('结果是:<br><br> <img src="cid:i1" width="300">','html','utf-8')
mail.attach(text)
# 发送邮件
connect.sendmail('2440490935@qq.com','417802359@qq.com',mail.as_string())
connect.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

connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('726550822@qq.com', 'xxxxxxxx')
mail = MIMEMultipart()
mail['Subject'] = Header('网上购票系统-候补订单兑现成功通知', 'utf-8').encode()
mail['To'] = 'y_t209@163.com'
mail['From'] = 'YUTING <726550822@qq.com>'

html = open('data.html', 'rt', encoding='utf-8').read()
text = MIMEText(html, 'html', 'utf-8')
mail.attach(text)

# 发送邮件
connect.sendmail('726550822@qq.com', 'y_t209@163.com', mail.as_string())
connect.quit()

html附件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="box">
        <img src="http://mobile.12306.cn/weixin/resources/weixin/images/mail/mail_top.jpg">
        <p id="p1"><b>尊敬的</b> <span style="color: red; font-weight:800;">余女士:</span></p>
        <p id="p2">
        您好!<br>
        您在中国铁路客户服务中心网站(<a href="http://www.12306.com">12306.cn</a>)成功办理了候补购票业务, 成功兑现了1张车票,票款共计283.00元,订单号码 <span style="color: red;">EK28002341</span>。 车票信息如下:</p>
        <img src="http://mobile.12306.cn/weixin/resources/weixin/images/mail/mail_line.jpg">
    </div>

    <style>
        #box{
            width: 760px;
            border: 1px solid rgb(190, 190, 190);
            margin-left: auto;
            margin-right:auto;
        }
        #p1{
            margin-left: 20px;
            font-size: 15px;
        }
        #p2{
            margin-left: 20px;
            font-size: 12px;
            color: light-gray;
        }
        #p2>a{
            color: #6d7855;
        }
    </style>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值