2019独角兽企业重金招聘Python工程师标准>>>

查看源码

 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 = 10
33
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 receivers
57
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'] = subject
71         msg['From'] = sender
72         msg['To'] = receiver
73         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

Python 批量发送邮件脚本相关推荐

  1. Python批量ping脚本

    简单的Python批量ping脚本 ip列表的文件为 192.168.1.1 192.168.1.2 ··· ··· # -*- coding: utf-8 -*- import osdef chec ...

  2. python批量发送邮件_Python批量发送邮件

    1.SMTP协议 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,是一个相对简单的基于文本的协议, 在其之上指定了一条消息的一个或多个接收者(在大多数情况下被 ...

  3. python自动发送邮件脚本

    目录 需要开通smtp功能 脚本 需要开通smtp功能 这里举例子使用的163的邮箱,每个邮箱都是一样的,发件邮箱设置即可 163网易免费邮-你的专业电子邮局 脚本 # -*- coding:utf- ...

  4. python批量发送邮件_Python3+Excel实现自动批量发送邮件功能

    开篇惯例,美女镇楼!! 文末有美女出处 前两天有个网友给我私信说想让我帮他实现一个自动批量定时点对点发送邮件的功能.闲聊之下才知道该网友的为何亟需上述功能,他的需求是这样的: 1.从excel文件中读 ...

  5. python批量ping脚本_Python多线程批量Ping主机IP的脚本

    Python 编写多线程 Ping 主机IP的脚本 1. 先编写一个 Ping 主机IP的脚本 ping_ip.pyimport subprocess import time # 记录开始执行的时间 ...

  6. 极速系列06—利用python批量发送邮件

    python发邮件需要掌握两个模块:smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. 1 介绍 ...

  7. python批量数据处理脚本——批量删除文件

    1.如果是删除一个文件内的所有文件(不存在文件夹),则使用os库的remove()函数: import osfile_path = "文件夹路径"files = os.listdi ...

  8. python批量ping50台服务器_使用python编写批量ping主机脚本

    通过使用python,编写脚本批量ping主机,验证主机是否处于活动状态 #!/usr/bin/python #auther: Jacky #date: 2016-08-01 #filename: p ...

  9. python批量提取pdf的数据_Python批量提取PDF文件中文本的脚本

    本文实例为大家分享了Python批量提取PDF文件中文本的具体代码,供大家参考,具体内容如下 首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库. import ...

  10. Python批量替换目录下文件后缀脚本实例

    本篇文章主要讲解Python批量替换文件目录下的后缀文件的方法. 日期:2021年12月25日 作者:任聪聪 使用效果 代码实例 import os import random list_nums = ...

最新文章

  1. Winform控件缩写
  2. 40亿次仿真学习:人工智能5:0大胜人类飞行员
  3. JavaScript是如何工作的:JavaScript的共享传递和按值传递
  4. 没有为类型定义方法怎么办_拼多多开店没有流量怎么办?有什么方法?新手必看!...
  5. NYOJ128前缀式计算
  6. 队列的C语言实现(通过内核链表)
  7. spring aop切点表达式常见写法
  8. Hashtable源码分析
  9. 3个月转行数据分析师,你需要掌握这些内容
  10. MySQL约束和修改数据表知识集结
  11. (王道408考研操作系统)第三章内存管理-第一节6-4:非连续分配管理方式之基本分页存储管理之两级页表
  12. 利用开放定址法实现散列表的创建、插入、删除、查找操作_散列表和IO
  13. 威逼司机二选一,是滴滴垄断,还是嘀嗒碰瓷?
  14. 数据库中的完整性约束及实例
  15. 完整的连接器设计手册_连接器卧式插拔力的测试介绍
  16. NotePad 常用设置
  17. 视频消除人声,适用于配音比赛等场合
  18. CANTest及CANPro软件滤波设置说明
  19. linux安装等宽中文字体,CentOS 5.5安装中文字体文泉驿
  20. 少儿美术课之水彩画第1集《草地上的小猫咪》

热门文章

  1. 【高数】如何由解倒求微分方程?及微分方程的阶数、任意常数、特征根的关系
  2. 计算机表格名次教程,Word表格怎么算名次
  3. ionic 插件安装
  4. MediaRecorder录制音频文件
  5. Python批量自定义文件夹图标
  6. AttributeError: module ‘ahocorasick‘ has no attribute ‘Automaton‘
  7. Windows开机启动项/自启动项文件夹位置
  8. iOS 加速计 摇一摇
  9. 光纤传输网的发展及其新的分层结构
  10. 网络共享计算机权限访问,访问共享计算机的时候提示没有权限使用网络资源的解决方法...