目录酱
一、Email应用编程
1.相关协议
- SMTP协议
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。
增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。 - POP3协议
POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。
POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或 MAC。一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。但POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。 - IMAP协议
IMAP(Internet Message Access Protocol)以前称作交互邮件访问协议(Interactive Mail Access Protocol),是一个应用层协议。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。
2.登录QQ的SMTP服务发送文本邮件
- 在电脑端登录QQ进入网页端邮箱,之后点击 设置->账户,打开SMTP服务,并获得授权码。
之后进入cmd命令台端口
telnet smtp.qq.com 587
helo smtp
登陆命令
auth login
- 之后分别输入自己邮箱和授权码的base64形式,可以在https://base64.us/
返回235 Authentication successful则表示登录成功。
- 之后配置发件人和收件人:
mail from:<你的发件邮箱>
rcpt to:<接收邮箱>
- 之后发送内容:
data
subject:填写邮件主题
//这里空一行
//填写邮件内容
.//这里以.结束
3.登录POP服务,阅读收到的邮件
进入cmd命令端:
以以下命令登录服务器:
telnet pop.qq.com 110
- 之后输入自己的qq
user qq号码
- 之后输入授权码:
pass 授权码
- 之后输入stat统计邮件信息:
stat
- 以list显示列表信息
list
- 以retr加序号查看邮件
retr 1//举例
二、登录ftp服务上传图片并分片下载最后合成
1.相关协议
- FTP
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
- HTTP1.1
HTTP1.1(Hypertext Transfer Protocol Version 1.1)超文本传输协议-版本1.1
它是用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议簇之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由URL指定的IP地址。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。
2.上传图片并分片下载合成
- 在ubuntu下安装VSFTPD:
sudo apt-get install vsftpd
- 启动服务
service vsftpd start
- 新建一个目录
sudo mkdir /home/uftp
- 新建一个名为uftp的用户
sudo useradd -d /home/uftp -s /bin/bash uftp
并设置密码
sudo passwd
- 配置vsftpd.conf
sudo vi /etc/vsftpd.conf
需要更改:
local_enable=YES //去掉该句前面的#
#设置文件上传
write_enable=YES //去掉该句前面的#
#使用utf8(centos默认没有这个设置也不需要添加)
utf8_filesystem=YES //去掉该句前面的#
并在vsftpd.conf末尾添加:
userlist_file=/etc/vsftpd.user_list
userlist_enable=YES
userlist_deny=NO
- 新建文件vsftpd.user_list
sudo vi /etc/vsftpd.user_list
这里需要注意,进去之后,可能需要先按一下“a”或“i”,才能进行输入。能输入之后在里面键入 uftp ,即自己新建的用户名,之后按esc退出输入模式,最后输入 :wq,即可保存退出。
- 之后登录服务器(输入用户名和自己的密码):
- 进行上传
put girl.jpg
下载
get girl.jpg
- 分割文件:
split -b 1k -d girl.jpg pic
注意!图片大小与切割大小的比例最好小一点,否则就会像上面那样切割成很多文件,后面进行粘合很难操作
重新切割
- 进行粘合
cat pic00 pic01>t1
cat t1 pic02>t2
cat t2 pic03>t3
....//不断覆盖所有分割出来的文件
cat t53 pic53>finsh.jpeg
总结
中间遇到的问题很多,base64形式转码输入报错,多试几次;Ubuntu下配置vsftpd.conf不能直接在文件列表打开更改,会显示没有修改权限。总的来说有问题还是得需要耐心。本次实验了解了一些协议,通过不同形式深入学习各种协议。
参考链接
https://blog.youkuaiyun.com/qq_46359931/article/details/122186843
https://blog.youkuaiyun.com/qq_45659777/article/details/122084550