python 快速发送大量邮件
因为公司需求,需要发送千万封级别邮件。
# coding:utf-8
import csv
import smtplib
from email.mime.text import MIMEText
import threadpool
class SendMail():
def __init__(self):
self.msg = MIMEText(mail_msg, 'html', 'utf-8')
self.msg['Subject'] = mailSubject
# 发件人信息
self.msg['From'] = "FreeFire@garena.com"
self.login()
def run(self, user):
res = self.send(user)
if not res:
self.s.login()
self.send(user)
def login(self):
'''
登录smtp server,这里需要手动修改
'''
self.s = smtplib.SMTP('smtp.qq.com', 465, timeout=30)
self.s.login("xxx@qq.com", "password")
def send(self, user):
try:
self.msg['To'] = user
self.s.sendmail(self.msg['From'], self.msg['To'], self.msg.as_string())
f.write("{} 发送成功\n".format(user))
print("{} 发送成功".format(user))
return True
except Exception as e:
print("{} 发送失败".format(user))
f.write("{} 发送失败\n".format(user))
import traceback
traceback.print_exc()
return False
def __del__(self):
self.s.close()
def sm(user):
SendMail().run(user)
if __name__ == '__main__':
with open('test.html', 'r+') as f:
mail_msg = f.read()
mailSubject = "the is test mail"
# 发送日志
f = open('send.log', 'a+')
# 发送邮件列表
mails = []
# mails_path: 一个csv文件,里面是所有的mail信息
mails_path = "test-users.txt"
with open(mails_path, newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
mails.append(row['email'])
pool = threadpool.ThreadPool(2)
requests = threadpool.makeRequests(sm, mails)
[pool.putRequest(req) for req in requests]
pool.wait()
f.close()
python 快速发送大量邮件的更多相关文章
- PHP调用Python快速发送高并发邮件
1 简介 在PHP中发送邮件,通常都是封装一个php的smtp邮件类来发送邮件.但是PHP底层的socket编程相对于Python来说效率是非常低的.CleverCode同时写过用python写的爬虫 ...
- python实现发送文本邮件
简单实现了python发送文本邮件 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/4/25 17:09 # @Author ...
- python——SMTP发送简单邮件
[root@localhost python]# cat smtp.py import smtplib import string from email.mime.text import MIMETe ...
- python定时利用QQ邮件发送天气预报
大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1.首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.c ...
- 使用python发送QQ邮件
这里用到了Python的两个包来发送邮件: smtplib 和 email . Python 的 email 模块里包含了许多实用的邮件格式设置函数,可以用来创建邮件“包裹”.使用的 MIMEText ...
- 九、Python发送QQ邮件(SMTP)
看了廖雪峰老师的教程: 一封电子邮件的旅程就是 发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人 ...
- python初级实战-----关于邮件发送问题
python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. sm ...
- 【python】脚本连续发送QQ邮件
今天习得用python写一个连续发送QQ邮件的脚本,经过测试,成功给国内外的服务器发送邮件,包括QQ邮箱.163邮箱.google邮箱,香港科技大学的邮箱和爱丁堡大学的邮箱.一下逐步解答相关技巧. 首 ...
- python 发送邮件(收到的邮件要有发送方才能回复)
Python使用SMTP(简单邮件传输协议)发送邮件 普通文本邮件 普通文本邮件发送的实现,关键是要将MIMEText中_subtype设置为plain ## -*- coding: UTF-8 -* ...
随机推荐
- js 判断对象是否为空
利用JSON.stringify var objData = {};JSON.stringify(objData) ==="{}" // true 第二种用原声js 方法 Obje ...
- 我们一起学Python之——认识Python"规则"
前言: 开学后,跟预想的一样,开学第一天我们就开了Python,虽然之前早就预料到了,但对于一直学Java的我来说,内心还是有一些涟漪的.总归还是要接受的,还不如振作起来,认真对待.我决定从最简单并且 ...
- Python3实用编程技巧进阶 ☝☝☝
Python3实用编程技巧进阶 ☝☝☝ 1.1.如何在列表中根据条件筛选数据 # 1.1.如何在列表中根据条件筛选数据 data = [-1, 2, 3, -4, 5] #筛选出data列表中大于等 ...
- 面试官,不要再问我“Java GC垃圾回收机制”了
Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈. 楔子-JVM内存结构补充 在上篇<JVM之内存结构详解> ...
- Flask中g对象,以及g,session,flash之间的区别
一.g对象的使用 专门用来存储用户信息的g对象,g的全称的为global g对象在一次请求中的所有的代码的地方,都是可以使用的 g对象的使用: 设置:g.变量名= 变量值 获取:g.name 注意:g ...
- XSS扫盲到漏洞挖掘上手
复习xss ,也总结一下XSS基础的点到进阶的知识 目录 0x01 XSS扫盲入门 0x02 XSS payload构造 0x03 XSS payload变形进阶 0x01 XSS扫盲入门 XS ...
- Python之类的特殊成员方法
类的特殊成员方法 1.__doc__ :打印类的描述信息 class Foo: """ 描述类信息,这是用于看片的神奇 """ def fu ...
- [BZOJ3813] 奇数国 - 线段树
3813: 奇数国 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 912 Solved: 508[Submit][Status][Discuss] ...
- jmeter-控制业务比例
方式一: 多线程组 缺点:由于各事务相应时间一般不一致,故只能粗略的控制业务占比 实例:待补充
- vue系列文章 --- 源码目录结构整理(三)
vue的版本是:^2.6.10 结构如下: |----- vue | |--- dist # 打包之后的目录vue文件 | | |--- vue.common.dev.js | | |--- vue. ...