当前位置: 首页 > news >正文

python发送邮件

为了安全起见,我们发送邮件需要使用tls,这样发送的内容都是加密的了,但是该工具批量发送带有自定义内容的邮件不方便,于是写了一个py脚本,使用--data参数,方便批量发送,我们的策略是每天随机发送150至200个人,具体看公司规模而定。每个邮箱客户端使用的邮件头还不一样,我们测试了用qq邮箱头发给outlook没有问题,由于我们公司默认都是outlook,foxmail没有测,应该问题也不大,有问题增删相关邮件头字段即可。下面是批量发送脚本内容(命名为mail.py):

import time
import sys
import subprocess
#发送的完整邮件内容有2部分组成,一部分是收件人,是可变的,一部分是邮件内容,是不变的,内容使用file_c变量,收件人使用file_f变量,具体看脚本内容file_c = '''Subject: =?gb2312?B?xxxxxxxdLss6M=?=  
#主题等都是gb2312编码后的base64加密
#Thread-Topic: =?gb2312?B?0/Lxxxxxxxxxss6M=?=
Thread-Index: AdT6eO/KxxxxxxxxxxxxxxxxIKA==
Date: {time.ctime()} +0800
#发送邮件是提前发送的模板邮件,所以需要获取当前时间作为发送时间,不然接收的时间会不对
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [x.x.x.x]
Content-Type:xxxxxxxxx;
Return-Path: administrator@xxx.com
xxx内容xxx '''file = open(f'/usr/local/src/{sys.argv[1]}', 'r')
names = file.readlines()
for name in names:file_f = f'To: "{name.strip()}" <{name.strip()}>\n'#print(file_f)with open('/usr/local/src/file.txt', 'w') as f:f.writelines(file_f + file_c)status = subprocess.Popen(['swaks', '--tls', '--data', '/usr/local/src/file.txt', '--to', name.strip(), '--from', 'administrator@xxx.com'], stdout=subprocess.PIPE)lg = status.stdout.readlines()print(type(lg))with open('/usr/local/src/log.txt', 'a+') as g:for line in lg:g.write(line.decode())
`

发送对象名单保存在sec.txt中,运行 python mail.py sec.txt 即可。

http://www.lryc.cn/news/150417.html

相关文章:

  • gitee上传本地项目bug
  • 自然语言处理2-NLP
  • 穿上App外衣,保持Web灵魂——PWA温故
  • 【跟小嘉学 Rust 编程】二十六、Rust的序列化解决方案(Serde)
  • 菜鸟教程《Python 3 教程》笔记(14):函数
  • SEC推迟ETF,BTC跌破26k,十年之约#6逢跌加仓
  • c++20 多线程并发 latch barrier semaphore
  • 【8 排序】简单选择排序。
  • 中国太保首席数据库专家林春:先难后易,核心系统数据库升级复盘
  • 数字孪生智慧工厂:电缆厂 3D 可视化管控系统
  • 使用WebSocket实现聊天功能
  • Ubuntu升级Cmake、gcc、g++
  • 8月28日上课内容 第四章 MySQL备份与恢复
  • es字段查询加keyword和不加keyword的区别
  • 前端JavaScript将数据转换成JSON字符串以及将JSON字符串转换成对象的两个API
  • Spring——Spring Boot基础
  • Python基础之基础语法(二)
  • docker常见面试问题详解
  • Auto-GPT 学习笔记
  • 代码随想录 - Day30 - 修剪二叉树,转换二叉树 + 二叉树总结
  • [音视频] sdl 渲染到外部创建的窗口上
  • MongoDB之索引
  • Redis的介绍
  • 一文了解Docker的用法
  • netcat的使用
  • 深度学习推荐系统(二)Deep Crossing及其在Criteo数据集上的应用
  • 前端常用 Vue3 项目组件大全
  • javaee spring 静态代理
  • Java 包装类和Arrays类(详细解释)
  • elementUi中的el-table表格的内容根据后端返回的数据用不同的颜色展示