课程设计_邮件发送程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(综合实验)报告
( 2013 – 2014 年度第 1 学期)
名称:网络软件程序设计课程设计题目:邮件发送器程序
院系:计算机系
班级:
学号:
学生姓名:
指导教师:
设计周数:1周
成绩:
日期:2013 年12 月27 日
一、课程设计(综合实验)的目的与要求
1.任务:设计一个邮件发送程序,可以按照要求实现邮件发送器的功能。
2.目的:使学生加深对网络通信协议、网络编程接口等基本概念、基本原理的理解,熟悉各种应用各种网络通信协议和网络编程接口编写网络应用程序的方法,拓宽学生的知识领域,锻炼学生的实践技能,培养学生科学的工作作风。
3.要求:基本功能完善,界面美观,方便易用,操作无误;通过课程设计学生应该学会使用各种网络通信协议和网络编程接口编写不同类型的网络应用程序,具备初步分析、设计和开发网络应用软件的能力,具备分析与检查软件错误、解决和处理实验结果的能力。二、设计(实验)正文
邮件发送器遵守基于C/S模式的SMTP协议,它规定了发信人把电子邮件发送到收信人的电子邮件的全过程,SMTP客户机与SMTP服务器两者在通信过程中如何交换信息。邮件发送器的主要功能如下:
(1)能够实现简单的邮件发送功能,能够发送普通的文本内容;
(2)能够实现带附件的邮件发送功能。
SMTP模型提供了一种邮件传输机制,当收件方和发件方都在同一个网络上时,可以吧邮件直接传给对方;当双方不在同一个网络上时,需要通过一个或几个中间服务器进行转发。首先,发件方通过SMTP客户端提出申请,要求与SMTP服务器建立双向的通信渠道;其次,服务器确认可以建立连接后,双方就开始进行通信。
SMTP客户端向服务器发送mail命令,告知发件方的身份,如果服务器接受,则回答OK;发件方再发出Rcpt命令,告知收件人的身份,服务器确认是否接收或转发,如果同意就回答OK;接下来就可以进行数据传输了。通信过程中,SMTP客户端与服务器采用对话式的交互方式,客户端提出要求,服务器进行确认,确认后才进行下一步的动作,整个过程由客户端控制,有时需要确认几回才可以。
为了保证回复命令的有效,SMTP要求发件方必须提供接收方的服务器及邮箱。邮件的命令和答复有严格的语法定义,并且回复相应的数字代码作为应答。
SMTP模型的工作过程大致如下:
C#语言操作简单、编程速度快,而且在.Mail中包含了对邮件的发送操作等相关内容,其界面也可以使用VS平台提供的工具方便的实现,比较容易实现本实验所要求的功能。三、课程设计(综合实验)总结或结论
1.正文为宋体,五号字行间距为21
1.1------------
1.2------------
四、参考文献
[1] 鲁斌, 李莉 网络程序设计与开发. 清华大学出版社, 2010年9月.
附录(设计流程图、程序、表格、数据等)
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using .Mail;
using .Mime;
namespace Ex419
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();//创建打开文件对话框
if (open.ShowDialog() == DialogResult.OK)
{
this.txtAttach.Text = open.FileName.ToString();//获取文件t
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
if (this.richTextBox1.Text.Trim().ToString() != "")
{
string server = this.txtserver.Text;
MailMessage Mail = new MailMessage(this.txtFrom.Text,
this.txtGet.Text);
Mail.Subject = this.txtSubject.Text.Trim().ToString();
Mail.Body = this.richTextBox1.Text.Trim().ToString();
SmtpClient Client = new SmtpClient(server, 25);//实例一个SMTP服务类对象
Client.Credentials = new
workCredential(txtusername.Text,txtpwd.Text);//验证用户是否合法
if (txtAttach.Text.Length > 0) //附件
{
Mail.Attachments.Add(new Attachment(txtAttach.Text, MediaTypeNames.Application.Octet));
}
Client.Send(Mail);
MessageBox.Show("邮件发送成功!!!");
}
else
MessageBox.Show("请填写邮件内容!!!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}