欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Some useful python function

程序员文章站 2022-05-08 19:25:36
...

邮件发送

两个文件: config.py:配置信息   send_msg.py:发送邮件

 

 send_msg.py

#coding=utf-8

import smtplib,config,email,sys
from email.Message import Message

def connect():
    "connect to smtp server and return a smtplib.SMTP instance object"
    server=smtplib.SMTP(config.smtpserver,config.smtpport)
    server.ehlo()
    server.login(config.smtpuser,config.smtppass)
    return server
   
def sendmessage(server,to,subj,content):
    "using server send a email"
    msg = Message()
    msg['Mime-Version']='1.0'
    msg['From']    = config.smtpuser
    msg['To']      = to
    msg['Subject'] = subj
    msg['Date']    = email.Utils.formatdate()          # curr datetime, rfc2822
    msg.set_payload(content)
    try:   
        failed = server.sendmail(config.smtpuser,to,str(msg))   # may also raise exc
    except Exception ,ex:
        print Exception,ex
        print 'Error - send failed'
    else:
        print "send success!"

if __name__=="__main__":
    #frm=raw_input('From? ').strip()
    to=raw_input('To? ').strip()
    subj=raw_input('Subj? ').strip()  
    print 'Type message text, end with line="."'
    text = ''
    while True:
        line = sys.stdin.readline()
        if line == '. ': break
        text += line
    server=connect()
    sendmessage(server,to,subj,text)

   config.py

 

smtpserver='mail.xxxx.net'
smtpuser='[email protected]'
smtppass='pwd'
smtpport='25'
 

 

定时抓取网页内容

#!usr/bin/python

import urllib2,time;
class ErrorHandler(urllib2.HTTPDefaultErrorHandler):
    def http_error_default(self, req, fp, code, msg, headers):
        result = urllib2.HTTPError(req.get_full_url(), code, msg, headers, fp)
        result.status = code
        return result

URL='http://www.ibm.com/developerworks/js/ajax1.js'
req=urllib2.Request(URL)
mgr=urllib2.build_opener(ErrorHandler())

while True:
    ns=mgr.open(req)
    if(ns.headers.has_key('last-modified')):
        modified=ns.headers.get('last-modified')
    if(ns.code==304):
        print '''
              NOT MODIFIED
        '''
    elif(ns.code==200):
        print ns.read()
    else:
        print 'there is an error';
       
    if(not locals().has_key('modified')):
        modified=time.time();
    req.add_header('If-Modified-Since',modified)
    time.sleep(10)