代码改变世界

python ftplib,smtplib,poplib学习

2013-09-30 17:21  cmsd  阅读(520)  评论(0编辑  收藏  举报

一.ftplib

from ftplib import FTP

ftpobj = FTP(IP或域名)     #实例化对象

ftpobj.login('username','passwd')  ##调用方法登录

ftpobj.pwd()                           #当前目录

ftpobj.cwd('/')                         #切换目录

ftpobj.dir([path[,..[,cb]])          #显示path 目录里的内容,可选的参数cb 是一个回调函数,它会被传给retrlines()方法

ftpobj.nlst([path[,..])               #以列表方式显示path内的内容

ftpobj.retrlines(cmd[,cb])         #给定FTP 命令(如“RETR filename”),用于下载文本文件。可选的回调函数cb 用于处理文件的每一行

ftpobj.retrbinary(cmd,cb[,bs=8192[,ra]]) #与retrlines()类似,只是这个指令处理二进制文件。回调函数cb 用于处理每一块(块大小默认为8K)下载的数据。

ftpobj.storlines(cmd, f)                    #给定FTP 命令(如“STOR filename”),以上传文本文件。要给定一个文件对象f

ftpobj.storbinary(cmd, f[,bs=8192])  #与storlines()类似,只是这个指令处理二进制文件。要给定一个文件对象f,上传块大小bs 默认为8Kbs=8192])

ftpobj.rename(old,new)                    #重命名

ftpobj.delete(path)                          #删除文件

ftpobj.mkd(dirname)                        #创建目录

ftpobj.rmd(dirname)                        #删除目录

ftpobj.quit()                                    #退出

二.smtplib  发送邮件

from smtplib import SMTP

qqcount = SMTP('smtp.qq.com')        #实例化一个对象

qqcount.login('username','password') #认证登录

qqcount.sendmail(frommail,(tomail1,tomail2,...),'''From: frommail\r\nTo:tomail1,tomail2,..\r\nSubject:somestring\r\n\r\ncontents\r\n.''') ##发邮件

    如:qqcount.sendmail('my888@qq.com',('my888@qq.com','hello123@163.com','lastimac@gmail.com'),'''From:my888@qq.com\r\nTo:my888@qq.com,hello123@qq.com,lastimac@gmail.com\r\nSubject: test python smtp\r\n\r\n hi,this mail is from python,goodby\r\n.''')

qqcount.quit()                                  ##退出

三.poplib  接收邮件

from poplib import POP3

qqpop = POP3('pop.qq.com')             ##实例化一pop3对象

qqpop.user('myqq@qq.com')             ##用户名

qqpop.pass_('mypassworld')             ##密码

qqpop.stat()                                    ##查看状态,返回邮件数量和总大小的元组

qqpop.list([num])                             ##为空返回所有邮件的id和大小的列表,如果有num则显示该id的邮件内容大小

qqpop.retr(num)                              ##返回(服务器的返回信息,消息msgnum的所有行,消息的字节数)  元组,并将该邮件标为已读

qqpop.dele(num)                              ##删除该邮件

qqpop.quit()                                    ##退出