本文實(shí)例講述了Python實(shí)現(xiàn)向QQ群成員自動(dòng)發(fā)郵件的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
原理:
我們需要先獲取QQ群中的所有成員并保存到一個(gè)txt文本中去,然后再由python讀取文件然后進(jìn)行批量郵件發(fā)送了,具體解決方案如下:
1. 獲取QQ群成員QQ號(hào)碼,QQ群成員信息可以在如下網(wǎng)頁(yè)中獲取,選擇全部成員保存在txt中即可
http://qun.qzone.qq.com/group#!/123456/member
(這里的123456為QQ群號(hào)碼)
2. 解析獲取的QQ群成員列表list.txt,給每個(gè)成員單獨(dú)自動(dòng)發(fā)送郵件,這里使用的發(fā)送方是163郵箱
完整腳本如下:
#coding:utf-8
import random
import smtplib
from email.mime.text import MIMEText
import time
def send_mail(mailto):
print 'Setting MIMEText'
CT=open('content.txt','r') #讀取發(fā)送郵件內(nèi)容
content=CT.read().decode('utf-8')
msg=MIMEText(content.encode('utf8'),_subtype='html')
CT.close()#關(guān)閉文件
msg['From']=mail_user
msg['SUbject']=u'Python郵件發(fā)送測(cè)試'
msg['To']=mailto
try:
print 'Connectting',mail_host
s=smtplib.SMTP_SSL(mail_host,465)
print 'Login to mail_host'
s.login(mail_user,mail_pwd)
print 'Send mail'
s.sendmail(mail_user,mailto,msg.as_string())
print 'Close the connection between the mail server'
s.close()
except Exception as e:
print "Exceptioin ",e
def sendqunmail():
try:
f=open(filelist,'r')
lines=f.readlines()
for i in range(len(lines)-1):
if lines[i].find('(')<>-1 and lines[i].find(')')<>-1:
qqnum=lines[i].split('(')[1].split(')')[0]
if qqnum.isdigit():
mailto=qqnum+'@qq.com'
print 'Sendmail to:'+mailto
send_mail(mailto)
time.sleep(10)
except Exception,ex:
print filelist,ex
if __name__=="__main__":
mail_host='smtp.163.com'
mail_user='[email protected]'
mail_pwd='test123'
filelist='list.txt'
sendqunmail()
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。