微普邮件服务器项目手册Word下载.docx
- 文档编号:20089899
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:6
- 大小:17.58KB
微普邮件服务器项目手册Word下载.docx
《微普邮件服务器项目手册Word下载.docx》由会员分享,可在线阅读,更多相关《微普邮件服务器项目手册Word下载.docx(6页珍藏版)》请在冰豆网上搜索。
1.3.3程序要捕获以下信号并做相应处理3
1.3.4要实现的SMTP(ESMTP)/POP3命令列表3
微普邮件服务器项目需求
1.1引言
1.1.1编写目的
帮助学员了解项目的功能,明确需求功能中用户对系统要做什么的要求,了解需求中的各种业务规则。
1.1.2范围
软件的名称:
邮件服务器
软件的功能:
提供邮件的发送(包括群发和转发)和接收的功能。
1.2项目概述
1.2.1产品描述
邮件服务器的主要功能是发送和接收邮件以达到数据信息传递和共享的目的。
它包含两部分:
负责发送邮件的SMTP服务器和负责接收邮件的POP3服务器。
在LINUX底下开发邮件服务器旨在帮助学员综合运用LINUX初级编程与LINUX高级编程所学到的知识。
如:
字符串数据的处理,守护进程的编写,进程间通信,多线程,管道,SOCKET编程,文件I/O标准库函数与系统调用,以及文件权限管理等等。
这里实际上要编写两个服务器程序,一个实现SMTP协议完成邮件的发送功能,一个实现POP3协议完成邮件的接收功能。
注意分开实现!
1.2.2产品功能
必需要实现的软件功能:
1.支持SMTP/ESMTP/POP3协议常用核心指令
2.支持邮件的群发和转发
3.使用Telnet,Outlook,Foxmail等客户端程序全部测试通过
1.2.3一般约束
编程语言:
使用标准C编程语言。
运行环境:
RHEL5(RedhatEnterpriseLinux5/CentOS5)
1.3项目要求
1.3.1项目要求用多文件,并编写Makefile来编译。
1.3.2SMTP/POP3服务器分别都要设计成为一个守护进程
守护进程是在后台运行不受终端控制的进程。
1.3.3使用Shell脚本来实现start,stop,restart
假定两个邮件服务程序的可执行文件为wpsmtpd、wppop3d,编写的Shell脚本分别为smtp.sh、pop3.sh。
可以分别用./smtp.shstart、./pop3.shstart来启动wpsmtpd、wppop3d服务器。
,用./smtp.shstop、./pop3.shstop停止,用./smtp.shrestart、./pop3.shrestart重启。
停止服务器的时候,要注意删除各自的共享内存与信号量。
1.3.4服务程序要捕获以下信号并做相应处理
SIGHUP进行清理工作,共享内存与信号量
SIGQUIT进行清理工作,共享内存与信号量
SIGCHLD调用wait避免僵死进程
SIGPIPE忽略
1.3.5要求用配置文件来对项目的一些参数进行配置
服务器能接收的最大连接数,以及超时设置等
1.3.6客户端空闲处理
如果服务器端在一定时间(这个时间可以通过配置文件配置)没有收到客户端的请求,服务器端要退出为该客户端服务的进程,以便腾出资源为其他更多的客户端服务。
1.3.7要实现的SMTP/ESMTP命令列表
命令类型
命令
功能说明
SMTP(ESMTP)协议命令,一般命令的格式是:
Command[Param]
HELO
用户问候信息
EHLO
带验证的用户问候信息(ESMTP)
AUTH(LOGIN)
带验证的用户登录(ESMTP),注意BASE64编码
MAIL(FROM)
指定发件人
RCPT(TO)
指定收件人(该命令可以重复多次出现)
DATA
指定要发送的邮件正文
RSET
重置状态
QUIT
客户端退出
1.3.8要实现的POP3命令列表
POP3协议命令,一般命令的格式是:
USER
用户账号
PASS
用户密码
STAT
用户邮箱状态信息
LIST
用户邮箱信息列表
RETR
要获取的邮件
DELE
指定要删除的邮件
重置待删除邮件列表
NOOP
测试与服务器的连接是否正常
UIDL
获取邮件的UIDL
TOP
获取邮件的头部信息
备注1:
SMTP正确交互过程:
S:
220xxx
C:
HELOxxx
250xxx
MAILFROM:
<
zs@>
RCPTTO:
ls@>
(可以重复出现)
354xxx
邮件头+邮件体(多行)
.(单独一行,邮件结束的标识,很重要!
)
250
221xx
备注2:
ESMTP正确交互过程:
EHLOxxx
250-WepullMailServer
250-PIPELINING
250-AUTH=LOGINPLAIN
250-AUTHLOGINPLAIN
250-SIZE20480000
2508BITMIME
AUTHLOGIN
334VXNlcm5hbWU6(Username)
BASE64加密后的用户名
334UGFzc3dvcmQ6(Password)
BASE64加密后的密码
235authsuccessfully
…(同上)
备注3:
POP3正确交互过程:
+OKxxx
USERzs
PASS11
+OK210
14
26
.(单独一行,邮件列表结束的标识,很重要!
RETR1
+OK4
返回第1封邮件的正文(ABCD)
.(单独一行,邮件结束的标识,很重要!
RETR2
+OK6
返回第2封邮件的正文(HELLO!
DELE1
(-ERRcommandnotimplement)
1.4项目中可能用到的技术点:
1.4.1字符串相关处理
1.4.2文件IO操作
1.4.3多进程编程
1.4.4多线程编程
1.4.5共享内存
1.4.6基本套接字
1.4.7守护进程的编写
1.4.8捕获信号
1.4.9用select来实现超时
1.4.10实现start,stop,restart
1.4.11系统参数要求在配置文件中配置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 邮件 服务器 项目 手册