#!/usr/bin/python
import sys, urllib, re
from email.Header import Header
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
import smtplib, datetime
def sendMail(toWho,fromWho,bookName,text):
msg = MIMEMultipart()
## fill your BT torrent or eBook ...
att = MIMEText(open(bookName, 'rb').read(), 'base64', 'gb2312')
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename="Redis_shejiyushixian.mobi"'
msg.attach(att)
msg['from'] = fromWho
msg['subject'] = Header(bookName + '(' + str(datetime.date.today()) + ')','gb2312')
msg.attach(MIMEText(text))
server = smtplib.SMTP('smtp.qq.com')
## fill your QQ number and password
server.login('1234567','xxxxxxxxxxxx')
error=server.sendmail(msg['from'],toWho,msg.as_string())
server.close
print error
dicSave = {}
for line in open("log"):
dicSave[line.rstrip()] = 1
dic = {}
preDic = {}
## grep Email format string
pattern = re.compile(r'[_.0-9a-z-]+@(?:[0-9a-z][0-9a-z-]+.)+[a-z]{2,3}\b')
## please enhance this script to mark stop page as next start page
for x in range(1,100):
## fill forum url which need scan
url="http://www.kindle114.com/thread-4567-%d-1.html" % x
print "%s" % url
wp = urllib.urlopen(url)
content = wp.read()
## get mail list
m = pattern.findall(content)
stopFlag = 1
for i in m:
## if page is duplicate means scan is wasting time and need stop
if i not in preDic:
stopFlag = 0
## only new mail address is needed to deliver
if i not in dicSave:
dic = 1
if stopFlag == 1:
print "Scan Page Over %d\n" % x
break
preDic = m
mailList = []
## write deliver mail address to log to avoid duplicate deliver in next run
file_object = open("log", 'a+')
for k,v in dic.items():
print k
mailList.append(k)
file_object.write(k+"\n")
file_object.close()
if mailList:
print "Delivering...\n";
sendMail(mailList,'77167680@qq.com','Redis_shejiyushixian.mobi','What are you interested in ?')
print "Deliver is completed...\n";
else:
print "Mail List is empty\n";