当前位置:   article > 正文

python批量发送工资条邮件_大唐建设集团工资xlsx

大唐建设集团工资xlsx

python批量发送工资条邮件

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

    image-20220125163245955

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

    image-20220125163824454

  3. 思路:

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

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

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

      这里有坑:邮箱登录的的账户密码有的邮箱是密码,有的是使用授权码,腾讯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>'
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

      读取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>                       
                    '''
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15

      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()) # 没读取一行信息发送一封邮件
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
  4. 总结反思:

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/432512
推荐阅读
相关标签
  

闽ICP备14008679号