python批量发送工资条邮件

python批量发送工资条邮件

  1. 工资excel表格格式如下所示:

    image-20220125163245955

  2. 使用python批量给每位员工发送工资条信息,格式如下:

    image-20220125163824454

  3. 思路:

    • 首先是加载excel,获取当前sheet表格

      salay = load_workbook('大唐建设集团-2022年5月工资.xlsx', data_only=True)
      ws = salay.active
      
    • 登录所使用的发件邮箱服务器

      # 登录邮箱服务器
      smtp_obj = smtplib.SMTP_SSL('smtp.qq.com', 465)
      # smtp_obj.set_debuglevel(1)
      smtp_obj.login('vision.wangpc@foxmail.com', "tsjodbaab") # 腾讯邮箱,客户端登录使用授权码
      

      这里有坑:邮箱登录的的账户密码有的邮箱是密码,有的是使用授权码,腾讯qq邮箱就是使用授权码

      使用新浪邮箱时候,登录不上服务器,原因未知!

    • 遍历sheet表,获取表头信息。

      count = 0
      for row in ws:
          count += 1
          if count == 1:  # 表头信息读取一次即可
              table_header = '<thead>'
              for cell in row:
                  table_header += f'''<th  >{cell.value}</th>'''
              table_header += '</thead>'
      

      读取excel第一行,构造表头,第一行只读取一次,所以加了一个计数变量.count

      table_header是构造工资条表头信息的html文本

    • 读取每一行数据,获取员工姓名、邮箱以及工资条信息,构造邮件正文的完整内容!

      else:
          msg_context_data = '<tr>'
          for cell in row:  # 一次读取员工工资条
              msg_context_data += f'''<td>{cell.value}</td>'''
              msg_context_data += '</tr>'
              mail = row[1].value
              name = row[2].value
              msg_context = f'''
                       <h3>{name},你好:</h3>
                       <p>请查收你2022-05月的工资条</p>
                       <table border="1px"> 
                          {table_header} 
                          {msg_context_data} 
                      </table>                       
                    '''
      

      msg_context_data是工资条信息那一行html格式的文本数据

    • 每读取一行数据,发送一封邮件

      msg = MIMEText(msg_context, 'html', 'GBK')
      msg['from'] = Header('xx人力资源部', 'GBK')
      msg['To'] = Header('name', 'GBK')
      msg['Subject'] = Header('2022.5月工资条', 'GBK')
      
      smtp_obj.sendmail('vision.wangpc@foxmail.com', mail, msg.as_string()) # 没读取一行信息发送一封邮件
      
  4. 总结反思:

    这个小程序就是复习实践python发邮件以及简单的excel的处理,python的用处还是很大,也很贴近实际生活,有待多多发觉!

更多学习交流,欢迎访问个人主页我的研学之路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值