读excel_python读excel 内容发送 邮件

今天 在产品评审会上

接到了一个新需求,说是 财务要把excel里每个人 每个月的工资明细 发送至 每个人的邮箱

7b997e304ffd641842d15f9f35c8445d.png 

excel 文件名称 gz.xls 

张三用我自己的qq邮箱  

李四 用我的 公司邮箱

稍加思考 发现 如果不要界面,还挺好做的

首先发邮件的方式 选择 

使用第三方 SMTP 服务发送

例如用自己的qq邮箱为发件人

用qq  开启服务:POP3/SMTP服务

44f9efbd4951205b79803381686a6e51.png

4ce5c57569ca8c99d8d99efec42350f1.png

获得授权码

替换相应的参数 即可发送邮件

内容参考  :https://www.runoob.com/python/python-email.html

接下来就是 内容

把表头字段 当key   把内容 当 value 组合成字典格式

传入邮件正文

import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrimport timeimport xlrddef mail(my_user,dictionary,name):
my_sender = '1*******@qq.com' # 发件人邮箱账号 my_pass = 'un******ddg' # 发件人邮箱密码 或 授权码 ret = True try:
msg = MIMEText(dictionary, 'plain', 'utf-8')

msg['From'] = formataddr(["财务", my_sender])

     # 括号里的对应发件人邮箱昵称、发件人邮箱账号

msg['To'] = formataddr([name, my_user])

     # 括号里的对应收件人邮箱昵称、收件人邮箱账号

msg['Subject'] = "工资明细"

     # 邮件的主题,也可以说是标题

server = smtplib.SMTP_SSL("smtp.qq.com", 465)

     # 发件人邮箱中的SMTP服务器,端口是465

server.login(my_sender, my_pass)

    # 括号中对应的是发件人邮箱账号、邮箱密码

server.sendmail(my_sender, [my_user, ], msg.as_string())

    # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件

server.quit() # 关闭连接

except Exception:

    # 如果 try 中的语句没有执行,则会执行下面的 ret=False

ret = False return ret# 打开一个Excel文件data = xlrd.open_workbook('gz.xls')# 打开第一个工作表table = data.sheets()[0]# 获取第一个工作表的行数t = table.nrows
tb_key = s = table.row_values(0)print(tb_key)for i in range(1, t):
s = table.row_values(i)
dictionary = dict(zip(tb_key, s)) # 将两个列表拼接成字典 dictionary=str(dictionary) # 强转换 print(dictionary)
em = s[1]
name=s[0]
ret = mail(em,dictionary,name)if ret:print("邮件发送成功")else:print("邮件发送失败")
time.sleep(2)

执行效果:

0303b6b90f304504279db1074b407b80.png

自己的qq 邮箱 收到 张三的 

fde84a8afcaaaad5e43b3a3ab498d70b.png

 在公司邮箱收到 收到 李四 的

3aa226bc24f55b6bd75ead31d5b7071a.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值