邮件自动发送

本文详细介绍了如何使用Python进行邮件自动发送,包括发送附件、图片和超文本文件的步骤。首先,需要准备邮箱账号和授权码,然后连接服务器并登录。接着,创建邮件并设置收发件人信息,正文内容可以是普通文字或HTML格式。对于发送附件,需读取文件并添加为附件;发送图片则需要创建图片对象并关联到邮件中;发送超文本文件也有其特定方法。最后,发送邮件并关闭连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DAY6邮件自动发送

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

账号:1219068551@qq.com

授权码:ncjsdnbobsasjbbhs(假设生成的为这一串)

  • 2.连接邮箱服务器(即打开邮箱网站)465端口
import smtplib
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
  • 3.登录邮箱账号
connect.login('1219068551@qq.com', 'xmjypotwtrnvibjf')
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('周报', 'utf-8').encode()

3)设置收件人信息

mail['To'] = '2369746305@qq.com'

4)设置发件人信息


mail['From'] = 'Hudinge <1219068551@qq.com>'

5)正文

#正文类型: plain:普通文字内容 html–超文本


text = MIMEText('尊敬的领导,以下是本的工作内容:.....', 'plain', 'utf-8')
mail.attach(text)

  • 5.发送邮件(点击发送)

connect.sendmail('1219068551@qq.com', '2369746305@qq.com', mail.as_string())

  • 6.关闭连接(关闭网站)
connect.quit()

一、发送附件

流程:

总的代码:

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

# 登录邮箱
connect.login('1219068551@qq.com','xmjypotwtrnvibjf')

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

mail = MIMEMultipart()
mail['Subject'] = Header('发送附件', 'utf-8').encode()
mail['To'] = '2369746305@qq.com'
mail['From'] = 'Hudinge <1219068551@qq.com>'

text = MIMEText('下面是所有附件内容', 'plain', 'utf-8')  #构建正文类的对象
mail.attach(text)
====================发送附件==========================

# 1.打开文件获得文件对象
f1 = open('files/QQ图片20220901111803.jpg', 'rb')
f2 = open('files/work_all_2.xls', 'rb')
f3 = open('files/夏天.png', 'rb')

# 2.创建附件对应的文本对象
a1 =MIMEText(f1.read(),'base64', 'utf-8')
a2 =MIMEText(f2.read(),'base64', 'utf-8')
a3 =MIMEText(f3.read(),'base64', 'utf-8')
# 附件名称不能有中文

# 3.设置附件信息
a1['Content-Disposition'] = 'attachment; filename="data1.jpg"'
a2['Content-Disposition'] = 'attachment; filename="data2.xls"'
a3['Content-Disposition'] = 'attachment; filename="data3.png"'

# 4.将附件添加邮件中
mail.attach(a1)
mail.attach(a2)
mail.attach(a3)
# 发送邮件
connect.sendmail('1219068551@qq.com', '2369746305@qq.com', mail.as_string())

# 关闭连接
connect.quit()

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

#需要创建files的文件夹存放图片,并且打开方式只能为rb
f1 = open('files/QQ图片20220901111803.jpg', 'rb')
f2 = open('files/work_all_2.xls', 'rb')
f3 = open('files/夏天.png', 'rb')

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

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

3.设置附件信息

#附件名称不能有中文
a1['Content-Disposition'] = 'attachment; filename="data1.jpg"'
a2['Content-Disposition'] = 'attachment; filename="data2.xls"'
a3['Content-Disposition'] = 'attachment; filename="data3.png"'

4.将附件添加到邮件中

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

5.发送邮件

connect.sendmail('1219068551@qq.com', '2369746305@qq.com', mail.as_string())

6.关闭连接

connect.quit()

二、发送图片

流程:

1.准备图片

f1 = open('files/夏天.png', 'rb')
f2 = open('files/QQ图片20220901111803.jpg', 'rb')

2.创建图片对象

image1 = MIMEImage(f1.read())

3.给图片添加id

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

4.将图片关联到邮件中

mail.attach(image1)

5.在正文中使用图片

# 正文添加图片的格式:<img src="cid: 图片id值" width="300">
# 文本类型html  ,编码方式utf - 8
text = MIMEText('结果是:<br><br> <img src="cid:i1" width="200">', 'html', 'utf-8')
mail.attach(text)

6.发送邮件并关闭连接

connect.sendmail('1219068551@qq.com', '2369746305@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('1219068551@qq.com', 'ezvhhcqvjzpbbegd')
mail = MIMEMultipart()
mail['Subject'] = Header('网上购票系统-候补订单兑现成功通知', 'utf-8').encode()
mail['To'] = '2369746305@qq.com'
mail['From'] = 'Hudinge <1219068551@qq.com>'

#打开超文本对象
html = open('data.html', 'rt', encoding='utf-8').read()
text = MIMEText(html, 'html', 'utf-8')
mail.attach(text)

# 发送邮件
connect.sendmail('1219068551@qq.com', '2369746305@qq.com', mail.as_string())
connect.quit()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值