批量发送邮件及多个附件

1.os常见函数

  • 路径

​ 1)绝对路径:文件或者文件夹在计算机中的全路径(windows从盘开始写,而且程序写绝对路径的时候字符串的最前面要加r)
​ 2)相对路径:前提:需要操作的文件或者文件夹在工程里面的时候才可以使用相对路径
​ a)用 . 开头表示当前目录(当前目录指的是,当前代码文件所在的文件夹),注意:如果相对路径是以’./‘开头的,’./'可以省略
​ b)用 … 开头表示当前目录的上层目录

  • 创建文件夹
    
    # os.mkdir(文件夹路径)
    # 注意:创建文件夹的时候,如果文件夹已经存在会报错!
    os.mkdir('./names')
    os.mkdir('./files/abc')
  • 判断文件或者文件夹是否已经存在
   
    # os.path.exists(文件或者文件夹路径)
    result = os.path.exists('./files/a')
    print(result)

    result = os.path.exists('./files/car.png')
    print(result)
  • 判断是否是文件或者文件夹

	# 4. 判断是否是文件或者文件夹
	# 1)os.path.isfile(路径)    - 判断指定路径对应的内容是否是文件
	# 2)os.path.isdir(路径)   -   判断指定路径对应的内容是否是文件夹
    result = os.path.isfile('./files/test')
	print(result)
  • 罗列出指定文件夹中所有的内容
    
    # os.listdir(文件夹路径)
    content = os.listdir('./files')
    print(content)
    for name in content:
    if os.path.isfile('./files/%s' % (name)):
        print(name)

2.批量发送邮件

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

data1= [
     {'name': 'hh', 'email': '#####@163.com', 'score': 400, 'gender': '男'},
     {'name': 'ff', 'email': '######@qq.com', 'score': 600, 'gender': '女'}]
# 1.连接服务器
connect = smtplib.SMTP_SSL('smtp.qq.com',465)
# 2.登录邮箱
connect.login('#####@qq.com', '###这里写邮箱码')
# 3.建立空邮件
for i in data1:
    email = MIMEMultipart()
    # 输入主题
    email['Subject'] = Header('这是批量轰炸','utf=8').encode()
    # 输入发件人
    email['From'] = 're <######@qq.com>'
    # 输入收件人
    email['To'] = '%s' % i['email']

    # 4.输入文本内容
    text = MIMEText('这将是一份垃圾邮件','plain','utf-8')
    # 将文本赋给邮件
    email.attach(text)
    # 5.打开附件内容
    for name in os.listdir('./names'):
        msg = open('./names/' + name, 'rb').read()
        # 创建附件对象
        msg1 = MIMEText(msg,'base64','utf-8')
        # 设置附件的位置和文件格式
        msg1['Content-Disposition'] = 'attachment; filename = "%s"' % name
        # 将msg1赋给邮件
        email.attach(msg1)
    connect.sendmail('#####@qq.com', '%s' % i['email'], email.as_string())

# 关闭邮件
connect.quit()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值