第一步:通过ip138来爬取外网ip
第二步:通过python的smtplib模块和email来发送邮件,具体用法去网上搜索,
下面是代码示例:
#!/usr/bin/env python #coding:utf-8 import urllib2 import re import smtplib from email.mimetext import mimetext from email.header import header ########################################## #get ip address url = "http://1212.ip138.com/ic.asp" url_op = urllib2.urlopen(url) url_content = url_op.read() ip_content = re.findall(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',url_content) ipcode = ''.join(ip_content) ################################################# # setting mail-server, etc mail_host="smtp.sina.com" mail_user="ckl" mail_pass="woxxxx" mail_postfix="sina.com" ################################################# def send_mail(to_list, sub, content): me = mail_user + "<" + mail_user + "@" + mail_postfix + ">" msg = mimetext(content) msg['subject'] = sub msg['from'] = me msg['to'] = ";".join(to_list) try: s = smtplib.smtp() s.connect(mail_host) s.login(mail_user, mail_pass) s.sendmail(me, to_list, msg.as_string()) s.close() return true except exception, e: print str(e) return false ################################################# # main process if __name__ == "__main__": mailto_list=["41145xxxx@qq.com"] if send_mail(mailto_list, "你的最新ip地址", ipcode): print "send success!" else: print "send failed!"
以上就是python实现获取外网ip并发邮件的方法的详细内容。