20201203-5 批量发送 email
作者:互联网
1-1 批量发送 email
1 from openpyxl import load_workbook 2 import smtplib 3 from email.mime.text import MIMEText 4 from email.mime.multipart import MIMEMultipart 5 6 # 设置邮箱账号 7 account = input('请输入邮箱账户:') 8 # 设置邮箱授权码 9 token = input('请输入邮箱授权码:') 10 # 设置邮箱服务器,端口 11 smtp = smtplib.SMTP_SSL('smtp.qq.com', 465) 12 # 登录qq邮箱 13 smtp.login(account, token) 14 15 # 打开工作表 16 wb = load_workbook('./04_月考勤表.xlsx') 17 sheet = wb.active 18 19 # 编写正文内容 20 content = '四月的考勤表已出,其中迟到时长超出 45 分钟的人员如下:\n' 21 for row_data in sheet.iter_rows(min_row=2, values_only=True): 22 # 获取迟到时长超过45分钟的人员 23 if row_data[2] > 45: 24 content += '姓名:{name} 迟到总时长:{time} \n'.format(name=row_data[1], time=row_data[2]) 25 content += '详情见附件内容' 26 27 # 创建简单邮件对象 28 email_content = MIMEText(content, 'plain', 'utf-8') 29 30 # 读取工作表文件数据 31 with open('./04_月考勤表.xlsx', 'rb') as f: 32 file_data = f.read() 33 34 # 设置内容类型为附件 35 attachment = MIMEText(file_data, 'base64', 'utf-8') 36 # 设置附件标题以及文件类型 37 attachment.add_header('Content-Disposition', 'attachment', filename='04_月考勤表.xlsx') 38 39 # 创建复合邮件对象 40 msg = MIMEMultipart() 41 42 # 添加正文到复合邮件对象中 43 msg.attach(email_content) 44 45 # 添加附件到复合邮件对象里 46 msg.attach(attachment) 47 48 # 设置发送者信息 49 msg['From'] = '陈知枫' 50 # 设置接受者信息 51 msg['To'] = '闪光金融的各位同事们' 52 # 设置邮件标题 53 msg['Subject'] = '04_月考勤表' 54 55 # 发送邮件 56 smtp.sendmail(account, 'example@mail.com', msg.as_string()) 57 # 关闭邮箱服务 58 smtp.quit()
1-1-1
1 from openpyxl import load_workbook 2 import smtplib 3 from email.mime.text import MIMEText 4 from email.mime.multipart import MIMEMultipart 5 6 # 设置邮箱账号 7 account = input('请输入邮箱账户:') 8 # 设置邮箱授权码 9 token = input('请输入邮箱授权码:') 10 # 设置邮箱服务器,端口 11 smtp = smtplib.SMTP_SSL('smtp.qq.com', 465) 12 # 登录qq邮箱 13 smtp.login(account, token) 14 15 # 打开工作表 16 wb = load_workbook('./04_月考勤表.xlsx') 17 sheet = wb.active 18 19 # 编写正文内容 20 content = '四月的考勤表已出,其中迟到时长超出 45 分钟的人员如下:\n' 21 for row_data in sheet.iter_rows(min_row=2, values_only=True): 22 # 获取迟到时长超过45分钟的人员 23 if row_data[2] > 45: 24 content += '姓名:{name} 迟到总时长:{time} \n'.format(name=row_data[1], time=row_data[2]) 25 content += '详情见附件内容' 26 27 # 设置正文,创建简单邮件对象 28 email_content = MIMEText(content, 'plain', 'utf-8') 29 30 # 读取工作表文件数据 31 with open('./04_月考勤表.xlsx', 'rb') as f: 32 file_data = f.read() 33 34 # 设置内容类型为附件 35 attachment = MIMEText(file_data, 'base64', 'utf-8') 36 # 设置附件标题以及文件类型 37 attachment.add_header('Content-Disposition', 'attachment', filename='04_月考勤表.xlsx') 38 39 # 创建复合邮件对象 40 msg = MIMEMultipart() 41 42 # 添加正文到复合邮件对象中 43 msg.attach(email_content) 44 45 # 添加附件到复合邮件对象里 46 msg.attach(attachment) 47 48 # 设置发送者信息 49 msg['From'] = '陈知枫' 50 # 设置接受者信息 51 msg['To'] = '闪光金融的各位同事们' 52 # 设置邮件标题 53 msg['Subject'] = '04_月考勤表' 54 55 # 发送邮件 56 smtp.sendmail(account, 'example@mail.com', msg.as_string()) 57 # 关闭邮箱服务 58 smtp.quit()
1.第 6~13 行实现了第一个功能块:登录邮箱。
2.第 15~28 行实现第二个功能块:设置正文内容。
3.第 30~37 行实现第三个功能块:设置附件内容。
4.第 40~54 行实现第四个功能块:设置邮件内容及信息。我们在这里会把正文和附件整合,并设置好发送者、接收者、标题等信息。
5.第 56~59 行实现第五个功能块:发送邮件并关闭邮箱服务。
标签:批量,content,20201203,设置,msg,邮箱,data,email,邮件 来源: https://www.cnblogs.com/azxsdcv/p/14082378.html