找南昌兼職做網(wǎng)站的百度第三季度財報2022
為了安全起見,我們發(fā)送郵件需要使用tls,這樣發(fā)送的內(nèi)容都是加密的了,但是該工具批量發(fā)送帶有自定義內(nèi)容的郵件不方便,于是寫了一個py腳本,使用--data參數(shù),方便批量發(fā)送,我們的策略是每天隨機(jī)發(fā)送150至200個人,具體看公司規(guī)模而定。每個郵箱客戶端使用的郵件頭還不一樣,我們測試了用qq郵箱頭發(fā)給outlook沒有問題,由于我們公司默認(rèn)都是outlook,foxmail沒有測,應(yīng)該問題也不大,有問題增刪相關(guān)郵件頭字段即可。下面是批量發(fā)送腳本內(nèi)容(命名為mail.py):
import time
import sys
import subprocess
#發(fā)送的完整郵件內(nèi)容有2部分組成,一部分是收件人,是可變的,一部分是郵件內(nèi)容,是不變的,內(nèi)容使用file_c變量,收件人使用file_f變量,具體看腳本內(nèi)容file_c = '''Subject: =?gb2312?B?xxxxxxxdLss6M=?=
#主題等都是gb2312編碼后的base64加密
#Thread-Topic: =?gb2312?B?0/Lxxxxxxxxxss6M=?=
Thread-Index: AdT6eO/KxxxxxxxxxxxxxxxxIKA==
Date: {time.ctime()} +0800
#發(fā)送郵件是提前發(fā)送的模板郵件,所以需要獲取當(dāng)前時間作為發(fā)送時間,不然接收的時間會不對
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內(nèi)容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())
`
發(fā)送對象名單保存在sec.txt中,運(yùn)行 python mail.py sec.txt 即可。