python高级 -- 应用层编程

1.1 FTP编程

FTP协议底层采用的是TCP协议完成的网络数据传输

FTP类型常见属性方法

login(user=’anonymous’, passwd=’’,acct=’’) 登录FTP服务器

pwd() 查看当前路径

cwd(path) 切换路径到指定的path路径

dir(path [,…[,cb]]) 显示path路径中文件的内容

nlst([path [,….]]) 类似dir(),返回文件名称列表

rename(old, name) 重命名old文件为new

retrlines(cmd [, cb]) 给定ftp命令,下载文本文件回调函数cb用于处理每一行文本

retrbinary(cmd, cb [, bs=8192 [,ra]])给定ftp命令,下载二进制文件回调函数cb处理每次读取的8k数据

storlines(cmd, f) 给定ftp命令,上传文本文件f

storbinary(cmd, f [, bs=8192]) 给定ftp命令,上传二进制文件f

delete(path) 删除path指定的某个文件

mkd(directory) 创建一个目录directory

rmd(directory) 删除指定的目录directory

quit() 关闭连接,退出FTP

FTP客户端实现:

import ftplib


def ftpconnect(host, username, passwd):
    ftp = ftplib.FTP(host=host, user=username, passwd=passwd)
    return ftp


def upload(ftp, localfile, remotefile):
    buffersize = 1024
    file = open(localfile, "rb")
    ftp.storbinary("STOR " + remotefile, file, buffersize)
    file.close()


def download(ftp, localfile, remotefile):
    buffersize = 1024
    file = open(localfile, "wb")
    ftp.retrbinary("RETR " + remotefile, file.write, buffersize)
    file.close()


if __name__ == "__main__":
    ftp = ftpconnect("localhost", "zzy", "123456")
    # upload(ftp, "d:/flashfxp.png", "newxp.png")
    download(ftp, "d:/newxpp.png", "newxp.png")
    ftp.quit()

1.2 SMTP、POP3、IMAP邮件收发

POP3(邮局协议的第三个版本)是用来接收邮件的,POP3允许用户从服务器上把邮件存储到本地主机(即自己计算机),同时删除保存在邮件服务器上的

邮件

IMAP(交互式邮件存取协议),也是用来接收邮件的,与POP3不同的是,下载邮件之后,邮件还保留在服务器上,客户端对邮

件的操作,都会反馈到服务器上,服务器会同步客户端的操作

SMTP(简单邮件传输协议),用来发送邮件,SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录

SMTP 服务器,这就使得那些垃圾邮件的散播 者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

发送普通文本邮件

import smtplib
from email.mime.text import MIMEText
# smtp服务器
smtpserver = 'smtp.qiye.163.com'
# 发送方信息
user = 'zhangzhaoyu@qikux.com'
passwd = '********'
# 接收方信息
receiver = "496575233@qq.com"

message = MIMEText("我是 通过Python发送的", "plain", "utf-8")
message["from"] = user
message["to"] = receiver
message["subject"] = "测试邮件"

server = smtplib.SMTP(host=smtpserver, port=25)
server.login(user, passwd)
server.sendmail(from_addr=user, to_addrs=receiver, msg=message.as_string())
server.quit()
print("finish")

发送html

html = "<h1>标题1</h1> 我是 通过Python发送的 <i>作者</i>"
message = MIMEText(html, 'html', 'utf-8')

发送带附件邮件

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
serversmtp = "smtp.qiye.163.com"
user = 'zhangzhaoyu@qikux.com'
passwd = '*******'
receiver = 'zhangzhaoyu@qikux.com'

message = MIMEMultipart()
message["from"] = user
message["to"] = receiver
message["subject"] = "带附件邮件"

# html附件
html = "<b>图片附件</b><img src='cid:imageid'/>"
msghtml = MIMEText(html, "html", "utf-8")
message.attach(msghtml)

# 图片附件
fileimage = open("f:/flashfxp.png", 'rb')
msgimage = MIMEImage(fileimage.read())
fileimage.close()
msgimage.add_header("Content-ID", "imageid")
message.attach(msgimage)

# 文件附件
filedoc = open("d:/zzy.docx", "rb")
msgfile = MIMEText(filedoc.read(), "base64", "utf-8")
filedoc.close()
msgfile["Content-Type"] = 'application/octet-stream'
# 这里的filename可以任意写,写什么名字,邮件中显示什么名字
msgfile["Content-Disposition"] = 'attachment; filename="test.docx"'
message.attach(msgfile)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值