python批量整理邮箱附件_用python批量发送附带正文和附件的邮件!解决工作的烦碎琐事!...

Python的功能十分强大,有很多令人意想不到的功能,学会python可以大大提高你的工作效率,帮助你解决人工重劳动。本期将继续向大家介绍python中的实用技能,本期的主题是:用Python批量发送带有正文和附件的邮件。让我们一起往下看,感受Python的奇妙吧!

首先通过设置获取POP3/SMTP服务授权码。

代码如下:

1 导入模块

注意,你的.py文件不能叫email.py会造成误认报错,可以是其他的名字。

# 导入smtplib模块,用于发送邮件。

# 官方文档:

import smtplib

# email模块用于创建文件内容

#带多个部分的邮件

from email.mime.multipart import MIMEMultipart

# MIMEText用于在邮件内的放置文本内容

from email.mime.text import MIMEText

# MIMEImage用于在邮件内放置图片附件

from email.mime.image import MIMEImage

# MIMEApplication用于在邮件内放置附件内容

from email.mime.application import MIMEApplication

# Header用于构建邮件头

from email.header import Header

2 服务器设置

# 指定发件人邮箱

from_addr = 123@qq.com'

# 在这里放入你之前保存的授权码,如果忘了可以重新生成。

password = 'xxxxxxxx'

# 指定收件人邮箱,有多少,放多少。

to_addrs = ['111@qq.com','222@qq.com','333@qq.com','444@qq.com','555@qq.com','666@qq.com','777@qq.com','888@qq.com','999@qq.com','000@qq.com']

# 指定发送服务器为腾讯邮箱服务器

smtp_server = 'smtp.qq.com'

# 创建邮件发送对象

server = smtplib.SMTP_SSL()

# 连接服务器

server.connect(smtp_server,465)

# 登录发送邮件的邮箱

server.login(from_addr,password)

3 加入正文文本

# 创建一个多部分的邮件对象

# 这一步很重要,后面的文本,图片和pdf都是不断添加到msg中的。

msg = MIMEMultipart('alternative')

# 在邮件中加入文本内容

contents = '''你好,世界!

我来了!

我又走了!

我没有带走那片云彩!'''

# plain是字体,utf-8是编码方式

msgtext = MIMEText(contents,'plain','utf-8')

# 将文本内容加载到msg中

msg.attach(msgtext)

4 加入图片附件

# 将一张图片放入邮件附件中

img_path = r"C:UsersadminDesktop运营python发送邮件LOGO.png"

img_name = 'Logo.png'

with open(img_path,'rb') as fp:

#读取图片赋值一个图片对象

msgImage = MIMEImage(fp.read())

#为图片对象拓展标题字段和值

msgImage.add_header('Content-Disposition', 'attachment', filename=img_name)

#将图像添加到msg

msg.attach(msgImage)

5 加入PDF附件

# 将一个pdf附件放入邮件中

filepath = r"C:UsersadminDesktop运营python发送邮件yte-of-python-chinese-edition.pdf"

filename = "byte-of-python-chinese-edition.pdf"

with open(filepath,'rb') as f:

#读取pdf文件赋值一个对象

attachfile = MIMEApplication(f.read())

#为对象拓展标题字段和值

attachfile.add_header('Content-Disposition', 'attachment', filename=filename)

#将pdf添加到msg

msg.attach(attachfile)

6 发送邮件

# 邮件标题

msg['Subject'] = Header('哈哈哈,这个是标题!')

# 标明邮件发送人名称

msg['From'] = Header('神秘人')

# 标明收件人

msg['To'] = Header(','.join(to_addrs))

# 指定邮件的发送邮箱,接收邮箱,发送内容

server.sendmail(from_addr,to_addrs, msg.as_string())

# 结束邮件发送,关闭服务器

server.quit()

7 常见报错

# 1:如果你的Python版本是3.7,很可能发生这种报错

ValueError: server_hostname cannot be an empty string or start with a leading dot.

# 把这两行代码改掉

# server = smtplib.SMTP_SSL()

# server.connect(smtp_server,465)

# 2:

# smtplib.SMTPException: No suitable authentication method found

# 改掉port参数,并去掉_SSL

# server = smtplib.SMTP()

# server.connect(smtp_server,25)

邮件发送结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值