栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Python群发邮件,根据excel内容。

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python群发邮件,根据excel内容。

Python读取excel表中的工资内容,实现工资群发邮件。 前言

目的:读取excel数据中的每个人工资情况,根据每个人的邮箱,实现群发邮件的功能。
参考:廖雪峰

一、准备工作(QQ邮箱为例)

1. Excel表中Sheet1的内容

2. 邮箱登录用户名 from_addr :发送邮件的邮箱

3. 登录密码 password:为授权码
发送者的邮箱主页,设置,账户,开户服务中IMAP/SMTP服务 开启,扫码生成授权码。

4. 服务器地址 smtp_server: smtp.qq.com

以QQ邮箱为例:帮助中心,客户端设置,SMTP服务器

5. excel路径 file_path:工资.xls 文件存储的路径 二、代码
import os
import xlrd
import smtplib
from email import encoders
from email.mime.base import MIMEBase
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr


def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))

def read_file(file_path):
	file_list = []
	work_book = xlrd.open_workbook(file_path)
	sheet_data = work_book.sheet_by_name('Sheet1')
	print('now is process :', sheet_data.name)
	Nrows = sheet_data.nrows

	for i in range(1, Nrows):
		file_list.append(sheet_data.row_values(i))

	return file_list

def send_gongzi(file_list, from_addr, password, smtp_server):
    for i in range(len(file_list)):
    
        person_info = file_list[i]
        person_name, jixiao, gongzi, jiangjin,email_add, yanglao = str(person_info[0]),  str(person_info[1]),  str(person_info[2]),  str(person_info[3]),  str(person_info[4]), str(person_info[5])
        
        msg = MIMEText('过年发工资' +'n绩效:'+ jixiao +'n工资:'+ gongzi + 'n奖金:'+ jiangjin+'n养老:'+yanglao , 'plain', 'utf-8')
        
        msg['From'] = _format_addr('bai <%s>' % from_addr)
        msg['To'] = _format_addr(person_name + '<%s>' % email_add)
        msg['Subject'] = Header('春节过节费发放通知', 'utf-8').encode()
    
        server = smtplib.SMTP(smtp_server, 25)
        server.starttls() # 调用starttls()方法,就创建了安全连接
        server.login(from_addr, password) # 登录邮箱服务器
        server.sendmail(from_addr, [email_add], msg.as_string()) # 发送信息
        server.quit()
        print( " 姓名:", person_name, "已发送成功!")

if __name__ == '__main__':
    
    from_addr = '********@qq.com'   # 邮箱登录用户名
    password  = 'mhazrnwjormbah'           # 登录密码
    smtp_server='smtp.qq.com'     # 服务器地址,默认端口号25
    file_path = r'F:9.14emil工资.xls'
    
    file_list = read_file(file_path)
    send_gongzi(file_list, from_addr, password, smtp_server)

结果

将excel表中的信息,依据每个人的邮箱进行群发。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/828239.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号