微普邮件服务器项目手册.docx

上传人:b****6 文档编号:7064503 上传时间:2023-01-16 格式:DOCX 页数:6 大小:17.58KB
下载 相关 举报
微普邮件服务器项目手册.docx_第1页
第1页 / 共6页
微普邮件服务器项目手册.docx_第2页
第2页 / 共6页
微普邮件服务器项目手册.docx_第3页
第3页 / 共6页
微普邮件服务器项目手册.docx_第4页
第4页 / 共6页
微普邮件服务器项目手册.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

微普邮件服务器项目手册.docx

《微普邮件服务器项目手册.docx》由会员分享,可在线阅读,更多相关《微普邮件服务器项目手册.docx(6页珍藏版)》请在冰豆网上搜索。

微普邮件服务器项目手册.docx

微普邮件服务器项目手册

微普信息人才培养基地

邮件服务器项目手册V1.0

 

微普信息学术部著

目录

第1章项目需求1

1.1引言1

1.1.1编写目的1

1.1.2范围1

1.2项目概述1

1.2.1产品描述1

1.2.2产品功能1

1.2.3一般约束3

1.3项目要求3

1.3.1SMTP/POP3服务器分别设计成为一个守护进程3

1.3.2程序必须接受三个参数start,stop,restart3

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协议命令,一般命令的格式是:

Command[Param]

USER

用户账号

PASS

用户密码

STAT

用户邮箱状态信息

LIST

用户邮箱信息列表

RETR

要获取的邮件

DELE

指定要删除的邮件

RSET

重置待删除邮件列表

NOOP

测试与服务器的连接是否正常

UIDL

获取邮件的UIDL

TOP

获取邮件的头部信息

QUIT

客户端退出

备注1:

SMTP正确交互过程:

S:

220xxx

C:

HELOxxx

S:

250xxx

C:

MAILFROM:

S:

250xxx

C:

RCPTTO:

(可以重复出现)

S:

250xxx

C:

DATA

S:

354xxx

C:

邮件头+邮件体(多行)

.(单独一行,邮件结束的标识,很重要!

S:

250

C:

QUIT

S:

221xx

备注2:

ESMTP正确交互过程:

S:

220xxx

C:

EHLOxxx

S:

250-WepullMailServer

250-PIPELINING

250-AUTH=LOGINPLAIN

250-AUTHLOGINPLAIN

250-SIZE20480000

2508BITMIME

C:

AUTHLOGIN

S:

334VXNlcm5hbWU6(Username)

C:

BASE64加密后的用户名

S:

334UGFzc3dvcmQ6(Password)

C:

BASE64加密后的密码

S:

235authsuccessfully

…(同上)

备注3:

POP3正确交互过程:

S:

+OKxxx

C:

USERzs

S:

+OKxxx

C:

PASS11

S:

+OKxxx

C:

STAT

S:

+OK210

C:

LIST

S:

+OK210

14

26

.(单独一行,邮件列表结束的标识,很重要!

C:

RETR1

S:

+OK4

返回第1封邮件的正文(ABCD)

.(单独一行,邮件结束的标识,很重要!

C:

RETR2

S:

+OK6

返回第2封邮件的正文(HELLO!

.(单独一行,邮件结束的标识,很重要!

C:

DELE1

S:

+OKxxx

C:

RSET

S:

+OKxxx

C:

QUIT

S:

+OKxxx

(-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系统参数要求在配置文件中配置

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1