python实现向qq群成员自动发邮件的方法

本文实例讲述了python实现向qq群成员自动发邮件的方法。分享给大家供大家参考。具体实现方法如下:

原理:

我们需要先获取qq群中的所有成员并保存到一个txt文本中去,然后再由python读取文件然后进行批量邮件发送了,具体解决方案如下:

1. 获取qq群成员qq号码,qq群成员信息可以在如下网页中获取,选择全部成员保存在txt中即可
http://qun.qzone.qq.com/group#!/123456/member
(这里的123456为qq群号码)

2. 解析获取的qq群成员列表list.txt,给每个成员单独自动发送邮件,这里使用的发送方是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’) #读取发送邮件内容
content=ct.read().decode(‘utf-8’)
msg=mimetext(content.encode(‘utf8′),_subtype=’html’)
ct.close()#关闭文件
msg[‘from’]=mail_user
msg[‘subject’]=u’python邮件发送测试’
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=’test@163.com’
mail_pwd=’test123′
filelist=’list.txt’
sendqunmail()

希望本文所述对大家的python程序设计有所帮助。

Posted in 未分类