ASP.NET邮件收发程序的设计与开发

摘    要

《邮件收发程序的设计与开发》是一个综合性的程序设计,涉及到界面、系统、数据库、协议、编码等多个方面的内容。本设计前台采用.NET技术,后台数据库采用SQL Server 2000,语言采用C#,主要讲述了邮件系统的注册、登陆、管理、发送和接收邮件等基本功能及设计方法。在系统分析中先后用系统的结构图分析了邮件系统,包括功能流程和功能分析,数据库表格。在整个系统的设计中,详细的展现了用户系统的各个功能模块,菜单的设计等。同时在系统的实现中,给出了实现表单中相应的后台数据库服务,前台功能控件的事件及代码以及界面实现的方法。最后,对系统设计的各个功能做了相应测试,并给出了相关设计页面截面的直观图。

关键字C#;邮件系统;SQL Server数据库

2.2  工作原理分析

电子邮件的工作原理:

1) 电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。

其各个界面是基于asp.net编写的,而实现各个控件功能的代码则是基于c#的。

2) 电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的—个电子信箱。并确定—个用户名和用户可以自己随意修改的口令。存储空间包含存放所收信件、编辑信件以及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能主要由软件实现。

3) 电子邮件的通信是在信箱之间进行的。用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之间进行传递和交换,也可以与另—个邮件系统进行传递和交换。收方在取信时,使用特定账号从信箱提取。

3.1  模块的划分与功能设计

通过对用户需求调研并进行了分析,确定邮件收发系统的功能模块主要划分为三部分:用户管理、邮件管理、邮件收发。

各模块的具体功能设计如下:

1)用户管理:

包括用户注册,用户注册登录,对注册用户进行权限设定,对注册用户的添加和删除等,对于一个完善的电子邮件系统来说,用户管理是很重要的,通过它可以对文件、信件、用户资料等加以保密。此外,也可以设置用户的管理级,使用户更好的使用和管理邮件。

2)邮件管理:

包括对邮件的移动,邮件修改,邮件删除以及新建邮件夹等。这个是电子邮件最基本应该具有的功能,使用户很方便的使用和管理自己的邮件,同时也节省了很多空间,如今,网络上垃圾邮件非常多,控制和删除便显得由为重要了。

3)电子邮件的发送:

用户运行该程序后,可以设置:收件人地址、寄件人地址、发送邮件的标题,发送邮件的正文、附件。

4)电子邮件的接收:

运行电子邮件接收程序后,就能够很轻松的查看邮件。邮件中将显示发件人、主题、内容和发送时间以及相关的附件等等。此外,该应用程序还能够顺利的浏览多封电子邮件。

接收和发送邮件则是邮件系统最为重要的一个功能模块了,也是人们使用他的真正目的,它很容易的让人们进行通信。

系统功能模块设置:

  1. 用户注册:未注册用户需注册后才能进入系统。
  • 操作对象:所有未注册用户。
  • 浏览对象:所有未注册用户。
  • 具体操作:注册用户在需填写用户名和密码才能注册。
  1. 用户登录:对注册用户和管理员的基本信息进行操作。
  • 操作对象:系统管理员
  • 浏览对象:系统管理员
  • 具体操作:用户使用注册成功的帐户名和密码登陆。
  1. 用户管理:合法用户可以查看库存所有用户的信息资料。
  • 操作对象:注册用户、管理员
  • 浏览对象:注册用户、管理员
  • 具体操作:管理员可以更改用户的名称,用户的密码,用户邮件地址,用户权限等用户的详细信息。
  1. 邮件管理:合法用户可以查看库存所有邮件的信息资料。
  • 操作对象:注册用户、管理员
  • 浏览对象:注册用户、管理员
  • 具体操作:管理员可以将邮件从一个文件夹转移到另一个文件夹。具体内容包括邮件标题,邮件内容,邮件创建时间,邮件创建用户名,附件内容等。同时,还能对邮件内容进行编译。
  1. 邮件收取:用于接收和查询来自其他用户发送的邮件
  • 操作对象:注册用户、管理员
  • 浏览对象:注册用户、管理员
  • 具体操作:管理员在收件夹中可查询接收邮件的名称,发送用户,发送地址,发送时间,信件内容以及相关附件。
  1. 邮件发送:用语发送邮件和邮件附件
  • 操作对象:注册用户、管理员
  • 浏览对象:注册用户、管理员
  • 具体操作:用户可以进入写邮件界面编写邮件和发送邮件,包括邮件标题,邮件内容,附件等并发送给目的地址。

3.4  模块的组织结构

邮件收发系统是一个数据共享网站,采用了B/S(Browser/Server,浏览器/服务器)模式又称B/S结构。用户使用从用户注册开始,流程如下:

图3 总体流程架构

图4 总体功能架构图

5.1 用户注册功能界面演示

未注册用户在登录界面中点击“注册”,然后系统跳转到注册界面,在注册界面中未注册用户在“用户名”栏中填入“yy”,点击“检测该用户名是否可用”按钮,系统显示该“用户名可以使用”,说明这个用户与系统用户名没有重复,可以使用。然后输入密码“123”与确认密码“123”,最后按“注册新用户”,这时候在系统中就生成了一个名为“yy”的用户。

图13 用户注册界面图

接着进入登录界面,输入刚注册的用户“yy”,密码“123”以及正确的验证码,这里是“56789a”,如图:

图14 邮件管理界面图

然后我们我们通过登陆“yy”这个用户进入系统,查看该注册用户的信息。进入用户管理页面后,我们可以看到注册用户的信息,并且能对用户进行操作。我们可以看到如图界面:

图15 用户管理界面图

5.2  管理功能界面演示

在通过注册、登陆后进入到主界面,可进行管理。这里可以很清楚的看到各个邮件夹及当中邮件的信息情况,当中可以对邮件进行管理,包括邮件删除,邮件转移等。在运行到上个界面时点击“邮件管理”进入到如下界面:

图16 管理功能界面演示图

还可以根据自己的需要创建自己的邮件夹,比如创建“yy’s email”如图:

图17 新建文件夹界面图

5.3  接收送功能界面演示

点击任何文件夹都可以查看其中的文件内容,比如点击了收件箱则跳转到如下界面:

图18 查看文件夹界面图

然后选择要查看的邮件,比如这里查看第一封邮件“AliasName Email”如图:

图19 查看邮件界面图

同样。发送邮件直接点击新邮件,内容包括手件人,主题,抄送人地址,内容,附件等,如图:

图20 发送邮件界面图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/700971.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EEL中 python端的函数名是如何传递给js端的

python端的函数名是如何传递给js端的 核心步骤:将函数名列表注入到动态生成的 eel.js 中,这样前端一开始引用的eel.js本身已经包含有py_function的函数名列表了。你打开开发者工具看看浏览器中的 eel.js文件源代码就知道了。 具体实现: # 读…

1. AB路线-BFS+分层图

0AB路线 - 蓝桥云课 (lanqiao.cn) #include <bits/stdc.h> #define int long long #define endl \n using namespace std; int n,m,k; //存迷宫格子 char board[1005][1005]; //vis[i][j][k]存坐标(i,j)的格子&#xff0c;在一个周期中第k次经过它 bool vis[1005][1005][…

vue2+Ts中openLayer绘图工具组件封装

vue2Ts中openLayer绘图工具组件封装 效果&#xff1a; 封装组件代码&#xff1a; <!-- openLayer绘图工具 --> <template><a-button-group v-show"isShow"><a-button v-if"shouldShowButton(point)" click"draw(Point)"…

Optional用法

说明&#xff1a;Optional和Stream一样&#xff0c;是Java8引入的特性&#xff0c;本文介绍Optional的几个实际用法。Steam流使用&#xff0c;参考下面这篇文章&#xff1a; Stream流使用 使用 1.保证值存在 // 1.保证值存在&#xff0c;pageNumber&#xff0c;pageSizeInte…

汇聚荣电商:拼多多开店需要多少费用?

想要在拼多多这个巨大的电商平台上开一家属于自己的店铺&#xff0c;很多创业者都会关心一个问题&#xff1a;开店需要多少费用?答案并不复杂&#xff0c;但背后的经营哲学和策略却值得深究。接下来&#xff0c;让我们从四个不同的方面来详细探讨这个问题。 一、开店成本分析 …

Linux/ubuntu build编译make时出现has modification time int the future的问题解决方法

针对Linux由于双系统之间的时间冲突导致linux时间经常变化&#xff0c;出现执行make命令时出现“make[2]: Warning: File xxx.c’ has modification time 1.6e05 s in the future “警告的问题&#xff0c;亦或者虚拟机出现相同的问题。 由于时钟同步问题&#xff0c;出现 warn…

1.基于python的单细胞数据预处理-特征选择

文章目录 特征选择背景基于基因离散度基于基因归一化方差基于基因皮尔森近似残差特征选择总结 参考&#xff1a; [1] https://github.com/Starlitnightly/single_cell_tutorial [2] https://github.com/theislab/single-cell-best-practices 特征选择背景 现在已经获得了经过…

C语言中的混合运算

1 混合运算 类型强制转换场景 整型数进行除法运算时&#xff0c;如果运算结果为小数&#xff0c;那么存储浮点数时一定要进行强制转换。例子&#xff1a; #include <stdio.h> //运算强制转换 int main(void) {int i5;//整型float ji/2;//这里做的是整型运算&#xff0…

【STM32】状态机实现定时器按键消抖,处理单击、双击、三击、长按事件

目录 一、简单介绍 二、模块与接线 三、cubemx配置 四、驱动编写 状态图 按键类型定义 参数初始化/复位 按键扫描 串口重定向 主函数 五、效果展示 六、驱动附录 key.c key.h 一、简单介绍 众所周知&#xff0c;普通的机械按键会产生抖动&#xff0c;可以采取硬件…

JavaScript的综合案例

案例要求&#xff1a; 实现一个表单验证 1.当输入框失去焦点时&#xff0c;验证输入的内容是否符合要求 2.当点击注册按钮时&#xff0c;判断所有输入框的内容是否都符合要求&#xff0c;如果不符合要求阻止表单提交 简单的页面实现 <!DOCTYPE html> <html lang&…

【Node.js】事件循环

Node.js 中的事件循环是基于单线程的异步非阻塞模型。它是 Node.js 的核心机制&#xff0c;用于处理非阻塞的 I/O 操作和异步事件。 1. Node.js 事件循环介绍 Node.js 的事件循环是一个 Event Loop&#xff0c;通过异步回调函数的方式实现非阻塞的处理。事件循环会在主线程上…

港股大反攻结束了吗?

‘港股长线见顶了吗&#xff1f;今天开盘就是最高点&#xff0c;然后一路跳水&#xff0c;市场又是一片恐慌。到底是健康的技术性回调&#xff0c;还是市场已经见顶&#xff1f; 港股此轮“大反攻”中&#xff0c;科网股表现十分亮眼。今日港股盘后&#xff0c;阿里巴巴、腾讯…