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.14\emil\工资.xls'
    
    file_list = read_file(file_path)
    send_gongzi(file_list, from_addr, password, smtp_server)

结果

将excel表中的信息,依据每个人的邮箱进行群发。
李四收件箱情况

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python进行群发邮件,你可以使用smtplib模块来实现。首先,你需要导入所需的模块和库,如email.mime.text、email.header和smtplib。然后,你需要设置发件人的邮箱地址、密码,以及收件人的邮箱地址列表。接下来,你可以编写邮件的正文内容,并创建一个MIMEText对象。然后,设置邮件的发件人、收件人和主题。最后,通过SMTP服务器连接并登录你的邮箱,使用sendmail方法将邮件发送给收件人,最后断开与SMTP服务器的连接。 以下是一个示例代码: from email.mime.text import MIMEText from email.header import Header import smtplib # 设置发件人信息 from_addr = 'your_email@example.com' password = 'your_password' # 设置收件人信息 to_addrs = ['recipient1@example.com', 'recipient2@example.com'] # 设置邮件正文内容 content = '邮件正文内容' # 创建MIMEText对象 msg = MIMEText(content, 'plain', 'utf-8') # 设置邮件的发件人、收件人和主题 msg['From'] = Header(from_addr) msg['To'] = Header(",".join(to_addrs)) msg['Subject'] = Header('邮件主题') # 连接SMTP服务器并发送邮件 server = smtplib.SMTP('smtp.qq.com') server.connect('smtp.qq.com', 587) server.login(from_addr, password) server.sendmail(from_addr, to_addrs, msg.as_string()) server.quit() 请确保将上述代码的"your_email@example.com"和"your_password"替换为你的真实邮箱地址和密码,"recipient1@example.com"和"recipient2@example.com"替换为你要发送邮件的收件人邮箱地址。这样,你就可以使用Python进行群发邮件了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python群发邮件](https://blog.csdn.net/wow0524/article/details/122339399)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值