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 importrandom importsmtplib fromemail.mime.textimportMIMEText importtime
defsend_mail(mailto): print'SettingMIMEText' 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'Logintomail_host' s.login(mail_user,mail_pwd) print'Sendmail' s.sendmail(mail_user,mailto,msg.as_string()) print'Closetheconnectionbetweenthemailserver' s.close() exceptExceptionase: print"Exceptioin",e defsendqunmail(): try: f=open(filelist,'r') lines=f.readlines() foriinrange(len(lines)-1): iflines[i].find('(')<>-1andlines[i].find(')')<>-1: qqnum=lines[i].split('(')[1].split(')')[0] ifqqnum.isdigit(): mailto=qqnum+'@qq.com' print'Sendmailto:'+mailto send_mail(mailto) time.sleep(10) exceptException,ex: printfilelist,ex if__name__=="__main__": mail_host='smtp.163.com' mail_user='test@163.com' mail_pwd='test123' filelist='list.txt' sendqunmail()