Python 读取csv文件,发送邮件

将收件人邮箱写入csv文件,在发邮件时读取csv文件。

将邮箱地址写入csv模块的方法是write(),步骤是:

  1. 引入csv模块
  2. 提供需要写入csv文件的数据
  3. 建文件并写入

举例:

import csv
#引用csv模块。

data = [['wufeng ', 'wufeng@qq.com'],['kaxi', 'kaxi@qq.com']]
#待写入csv文件的内容

with open('to_addrs.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    #定义一个变量writer,进行写入,将刚才的文件变量传进来
    for row in data:
        writer.writerow(row)
        #通过遍历列表data数据一行行写到to_addrs.csv文件中

读取csv文件步骤:

  1. 引入csv模块
  2. 打开csv文件
  3. 读取需要的数据

举例:

import csv
#引用csv模块。

with open('to_addrs.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader: 
        to_addrs=row[1]      
        #这里的row[1]表示读取每行数据的第二个元素

完整代码:

import smtplib
#smtplib 用于邮件的发信动作
from email.mime.text import MIMEText
#Email用于邮件构建内容
from email.header import Header
#用于构建邮件头
import csv
#引用csv模块,用于读取邮箱信息


#发信方信息
from_addr=input('请输入你的邮箱账号:')
password=input('请输入邮箱授权码:')

#发信服务器
smtp_server='smtp.qq.com'

#邮件内容:
text='''
哈喽哈
我爱学习
学习使我快乐
学习是我幸福
'''

#待写入csv文件的收件人数据:人名+邮箱
data=[['张三','xxx@qq.com'],['李四','yyy@163.com']]

#写入收件人数据
with  open('to_addrs.csv','w',newline='')as f:
#没有这个文件就会自动创建这个文件,newline=''用来换行的
    writer=csv.writer(f)
    #定义一个变量writer,进行写入,将刚才的文件变量f传进来
    for row in data:
        writer.writerow(row)
        #通过遍历列表data将数据一行行写到了to_addrs.csv文件中

#读取收件人数据,并启动写信和发信流程
with open('to_addrs.csv','r') as f :
    reader=csv.reader(f)
    for row in reader:
        to_addrs=row[1]
        #因为是一行行读取,因为每一行第0列是收件方姓名
        #第1列是收件人邮箱账号在这里我们需要收件人账号
        msg=MIMEText(text,'plain','utf-8')
        msg['Subject']=Header('Python new csv test')
        msg['From']=Header(from_addr)
        msg['To']=Header(row[0])
        #创建服务器对象
        server=smtplib.SMTP_SSL(smtp_server)
        #进行连接
        server.connect(smtp_server,'465')
        #登录
        server.login(from_addr,password)
        #发送邮件
        try:
            server.sendmail(from_addr,to_addrs,msg.as_string())
            print('恭喜,发送成功')
        except:
            print('发送失败,请重新试试!')
#关闭服务器
server.quit()

运行结果:

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值