栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python-群发推广邮件

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

Python-群发推广邮件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 一、Python-群发推广邮件
  • 二、代码
  • 总结
  • 解释

一、Python-群发推广邮件

通过切换多个发件邮箱账号,每个发件邮箱账号发送多次,把固定的邮件内容发送到【客户名单.xlsx】工作簿上的所有客户邮箱账号。

二、代码

代码如下(示例):

 # 群发推广邮件
from openpyxl import load_workbook
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# 设置邮箱服务器,端口
smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)

# 设置正文内容
content = '''
您好!
附件中为天变公司新产品的介绍,您注意查阅,有什么问题请随时联系!
'''
email_content = MIMEText(content, 'plain', 'utf-8')

# 读取附件【新产品介绍.pdf】文件数据
with open('../工作/新产品介绍.pdf', 'rb') as f:
    file_data = f.read()

# 设置内容类型为附件
attachment = MIMEText(file_data, 'base64', 'utf-8')

# 设置附件标题以及文件类型
attachment.add_header('Content-Disposition',
                    'attachment', filename='新产品介绍.pdf')

# 创建发件邮箱账号列表
mail_list = [
    {'email': 'xxx@qq.com', 'token': 'xxx'},
    {'email': 'xxx@qq.com', 'token': 'xxx'},
]

# 获取【客户名单】工作表
wb = load_workbook('../工作/客户名单.xlsx')
sheet = wb.active

# 创建客户邮箱账号列表
costumer_list = []
# 遍历【客户名单】工作表中数据
for row in sheet.iter_rows(min_row=2, values_only=True):
    # 将数据写入客户邮箱账号列表中
    costumer_list.append(row[3])

# 获取客户邮箱账号数量
costumer_num = sheet.max_row - 1

# 判断客户邮箱账号数量除以6余数是否大于0
if costumer_num % 6 > 0:
    # 如果判断大于0,发件邮箱账号个数等于客户邮箱账号数量整除6的值加1
    account_num = (costumer_num // 6) + 1

else:
    # 否则,发件邮箱账号个数等于客户邮箱账号数量整除6的值
    account_num = costumer_num // 6

# 循环发件邮箱账号个数
for mail_count in range(account_num):
    # 取出发件邮箱账号的邮箱和授权码
    email = mail_list[mail_count]['email']
    token = mail_list[mail_count]['token']

    # 从客户邮箱账号列表中取出单个发件邮箱账号需要发送的客户邮箱账号
    receiver_list = costumer_list[mail_count * 6: (mail_count + 1) * 6]

    # 判断单个发件邮箱账号需要发送的客户邮箱账号数量除以3余数是否大于0
    if len(receiver_list) % 3 > 0:
        # 如果判断大于0,单个发件邮箱账号需要发送的次数等于单个发件邮箱账号需要发送的客户邮箱账号数量整除3的值加1
        send_times = (len(receiver_list) // 3) + 1

    else:
         # 否则,单个发件邮箱账号需要发送的次数等于单个发件邮箱账号需要发送的客户邮箱账号数量整除3的值
        send_times = len(receiver_list) // 3

    # 循环单个发件邮箱账号需要发送的次数
    for i in range(send_times):
        # 取出单次发送的客户邮箱账号
        receivers = receiver_list[i * 3:(i + 1) * 3]

        # 登录发件邮箱账号
        smtp.login(email, token)

        # 设置邮件内容
        msg = MIMEMultipart()

        # 设置发送人、收件人、邮件主题
        msg['From'] = email
        msg['To'] = '尊敬的客户'
        msg['Subject'] = '新产品介绍'

        # 将正文内容添加到邮件内容里
        msg.attach(email_content)

        # 将附件添加到邮件内容里
        msg.attach(attachment)

        # 发送邮件
        smtp.sendmail(email, receivers, msg.as_string())

# 关闭邮箱服务
smtp.quit()
总结

仙女姐姐说独立则天地皆宽來來來

解释

此文仅为本人学习过程中的笔记,并非原创。我是菜鸟大人,一个只会写paper的小菜鸡臘‍♀️臘‍♀️臘‍♀️。

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

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

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