博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 批量发送邮件脚本
阅读量:6323 次
发布时间:2019-06-22

本文共 2368 字,大约阅读时间需要 7 分钟。

hot3.png

查看源码
1 #!/usr/bin/env python 2 #-*- coding: utf-8 -*- 3  4 import email 5 import smtplib 6 import mimetypes 7 from email.MIMEMultipart import MIMEMultipart 8 from email.MIMEText import MIMEText 9 10 # 邮件列表文件(每行一个邮件地址)11 MAIL_FILE_PATH = './emails.txt'12 13 # 邮件内容文件14 MAIL_CONTENT_PATH = './page_kfc.html'15 16 # 发件人名称17 SENDER_NAME = 'Company Inc.'18 19 # 发件人邮箱20 SENDER_MAIL = 'noreply@yourmailhost.com'21 22 # 发件人邮箱密码23 SENDER_PSWD = 'yourpassword'24 25 # SMTP 服务器26 SMTP_SERVER = 'smtp.yourmailhost.com'27 28 # SMTP 端口29 SMTP_PORT = '25'30 31 # 每次发送给几人32 RECEIVER_LIMIT_PER_TIME = 1033 34 # ##################################################################35 #                                                                  #36 #                       以下部分请勿修改                           #37 #                                                                  #38 # ##################################################################39 40 # 获取收件人列表41 def GetReceivers(limit = 10):42     f = open(MAIL_FILE_PATH, 'r+')43 44     try:45         lines = f.readlines()46     finally:47         f.close()48 49     receivers = lines[:RECEIVER_LIMIT_PER_TIME]50     lines     = lines[RECEIVER_LIMIT_PER_TIME:]51 52     f = open(MAIL_FILE_PATH, 'w+')53     f.writelines(lines)54     f.close()55 56     return receivers57 58 # 批量发送邮件59 def SendEmail(sender, senderName, receivers, subject, body):60     smtp = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)61     smtp.login(SENDER_MAIL, SENDER_PSWD)62 63     if(senderName != ''):64         sender = senderName + '<' + sender + '>'65 66     for receiver in receivers:67         receiver = receiver.strip()68 69         msg = MIMEMultipart('alternative')70         msg['Subject'] = subject71         msg['From'] = sender72         msg['To'] = receiver73         msg.attach(MIMEText(body, 'html', 'utf-8'))74 75         smtp.sendmail(sender, receiver, msg.as_string())76 77     smtp.quit()78 79 if __name__ == '__main__':80     '''81     发送邮件开始82     '''83 84     # 获取本次要发送的邮件地址85     receivers = GetReceivers(RECEIVER_LIMIT_PER_TIME)86 87     # 获取邮件标题和内容88     f = open(MAIL_CONTENT_PATH, 'r');89     lines = f.readlines()90     f.close()91 92     subject = lines[0].strip()93     body = ''.join(lines[1:])94 95     # 发送96     SendEmail(SENDER_MAIL, SENDER_NAME, receivers, subject, body)

 

转载于:https://my.oschina.net/weisenz/blog/200640

你可能感兴趣的文章
Java B2B2C多用户电子商务平台SpringCloud/Boot
查看>>
php curl登陆qq后获取用户信息时证书错误
查看>>
我的友情链接
查看>>
为vim配置go开发环境
查看>>
node.js如何读取MySQL数据
查看>>
loadJS
查看>>
要走了
查看>>
Windows Server 2012安装SQL 2012
查看>>
Docker技术学习
查看>>
Linux WEB服务器搭建-Nginx篇
查看>>
无线通信基础资料整理2 之3G 4G
查看>>
全局光照---光子映射
查看>>
支持向量机---线性支持向量机与软间隔最大化
查看>>
我的友情链接
查看>>
puppet自动化管理工具学习之文件
查看>>
Ubuntu安装RPM格式软件包
查看>>
oracle 查询结果列转行---查询结果横向显示
查看>>
SQL Server中的临时表和表变量 Declare @Tablename Table【转】
查看>>
汇编语言指令英文全称
查看>>
8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向
查看>>