# -*-coding:utf8 -*-
#!/usr/bin/python
import smtplib
from email.mime.text import MIMEText
# IP
import urllib2
import re
# 时间函数
import time
# 随机整数
import random
# 第三方 SMTP 服务
mail_host = "smtp.qq.com" # SMTP服务
mail_user = "1124760XXX@qq.com" # 用户名
mail_pass = "pxzvevrxxxbage" # 密码
sender = '1124760XXX@qq.com' # 发件人邮箱
receivers = ['pxxx@163.com'] # 接收人邮箱
# 公网IP函数
def changeip( ):
req = urllib2.Request("http://txt.go.sohu.com/ip/soip")
try:
url = urllib2.urlopen(req, data=None, timeout=3)
text = url.read()
ip = re.findall(r'\d+.\d+.\d+.\d+',text)
ip=ip[0]
return ip
except urllib2.HTTPError,e:
print e.code
# 邮件函数
def changeemail(ip):
content = ip
title = '公网IP' # 邮件主题
message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title
try:
smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465
smtpObj.login(mail_user, mail_pass) # 登录验证
smtpObj.sendmail(sender, receivers, message.as_string()) # 发送
smtpObj.quit();
print '发送成功!'
except smtplib.SMTPException as e:
print(e)
i = 0
agoip = '11.1' # 邮件主题
while i < 1 :
try:
ip = changeip();
print ip;
print time.asctime( time.localtime(time.time()))
if ip != agoip: changeemail(ip);
agoip = ip
except ip as e:
print(e)
print 'ip错误';
time.sleep(random.randint(600,1200))