Day6-邮件的自动发送

Day6-邮件的自动发送

1. 邮件自动发送的基本流程

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

  • 账号: 3552531753@qq.com
  • 授权码:在设置—>账户—>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务中开启POP3/SMTP服务—>再生成授权码

1.2 连接邮箱服务器(相当于打开邮箱网址)

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

1.3 登录邮箱账号

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

1.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('我的周报', 'utf-8').encode()
    
    # 3)设置收件人信息
    mail['To'] = '1945919018@qq.com'
    # 4) 发件人
    mail['From'] = 'Lu <3552531753@qq.com>'
    
    # 5) 正文
    text = MIMEText('亲爱的,嘻嘻嘻嘻嘻嘻嘻,哈哈哈哈哈哈哈', 'plain', 'utf-8')
    mail.attach(text)
    

1.5 发送文件

connect.sendmail('3552531753@qq.com', '1945919018@qq.com', mail.as_string())

1.6 关闭连接

connect.quit()

2. 发送附件(添加附件流程)

根据以上基本流程,修改邮件内容中正文即可

  • plain - 普通文本; html - 超文本; base64 - 二进制文件(用于添加附件)
text = MIMEText('下面是所有的附件内容...', 'plain', 'utf-8')
mail.attach(text)

2.1 打开文件获得文件对象

在此前可以将本地文件复制到该目录下

f1 = open('files/孔明灯.jpeg', 'rb')
f2 = open('files/smtplib 邮件自动发送.pdf', 'rb')
f3 = open('files/意境.jpeg', 'rb')

2.2 创建附件对应的文本对象

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

2.3 设置附件信息

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

2.4 将附件关联到邮件中

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

3. 发送图片

根据以上基本流程,修改邮件内容中正文即可

3.1 准备图片

f1 = open('files/孔明灯.jpeg', 'rb')
f2 = open('files/猫可.jpeg.jpeg', 'rb')
f3 = open('files/孔明灯2.jpg', 'rb')
f4 = open('files/4.jpeg', 'rb')

3.2 创建图片对象

image1 = MIMEImage(f1.read())
image2 = MIMEImage(f2.read())
image3 = MIMEImage(f3.read())
image4 = MIMEImage(f4.read())

3.3 给图片添加ID

image1.add_header('Content-ID', 'i1')
image2.add_header('Content-ID', 'i2')
image3.add_header('Content-ID', 'i3')
image4.add_header('Content-ID', 'i4')

3.4 将图片关联到邮件中

mail.attach(image1)
mail.attach(image2)
mail.attach(image3)
mail.attach(image4)

3.5 正文中使用图片

正文添加图片格式:

text1 = MIMEText('孔明灯图片: <br> <img src="cid:i1" width="400">', 'html', 'utf-8')
mail.attach(text1)
text3 = MIMEText('<img src="cid:i3" width="400">', 'html', 'utf-8')
mail.attach(text3)
text2 = MIMEText('猫咪图片: <br> <img src="cid:i2" width="400">', 'html', 'utf-8')
mail.attach(text2)
text4 = MIMEText('<img src="cid:i4" width="400">', 'html', 'utf-8')
mail.attach(text4)

4. 超文本文件

根据以上基本流程,修改邮件内容中正文即可

新建一个html文件进行页面设计,如下data.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>
html = open('data.html', 'rt', encoding='utf-8').read()
text = MIMEText(html, 'html', 'utf-8')
mail.attach(text)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是利用 Python 自动发送邮件的步骤: 1. 导入相应的库 ```python import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication ``` 2. 设置发件人和收件人信息 ```python sender = '你的邮箱地址' password = '你的邮箱密码' receiver = '收件人邮箱地址' ``` 3. 创建邮件对象并设置邮件内容 ```python message = MIMEMultipart() message['From'] = sender message['To'] = receiver message['Subject'] = '邮件主题' # 添加邮件正文 text = MIMEText('邮件正文', 'plain', 'utf-8') message.attach(text) # 添加附件 with open('附件路径', 'rb') as f: attachment = MIMEApplication(f.read()) attachment.add_header('Content-Disposition', 'attachment', filename='附件名称') message.attach(attachment) ``` 4. 发送邮件 ```python # 连接邮箱服务器 smtp_server = 'smtp.邮箱后缀' smtp_port = 25 server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() server.login(sender, password) # 发送邮件 server.sendmail(sender, receiver, message.as_string()) # 关闭连接 server.quit() ``` 5. 设置定时发送 ```python import schedule import time def send_email(): # 创建邮件对象和设置邮件内容 ... # 发送邮件 ... # 每天 9 点钟发送邮件 schedule.every().day.at('09:00').do(send_email) while True: schedule.run_pending() time.sleep(1) ``` 以上是利用 Python 自动发送邮件的基本步骤,需要注意的是,定时发送需要使用第三方库 `schedule`,需要先安装。另外,还需要将上述代码保存为 `.py` 文件,通过命令行运行或配置定时任务实现自动发送邮件的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值