电子邮件客户端软件开题报告+论文+源代码+英文文献 第15页
{
//从网络流中读取数据,并返回读取的个数
StreamSize=ns.Read(ReadBuffer,0,ReadBuffer.Length);
}
catch (Exception ex)
{
//返回异常信息
MessageBox.Show(ex.ToString ());
}
if (StreamSize!=0)
{
//将当前读取的信息转换成字符串型然后返回
ReturnValue= Encoding.Default.GetString(ReadBuffer).Substring(0,StreamSize);
}
return ReturnValue;
}
7) 重载的函数 Dialog
它们的作用是与服务器交互,发送命令并接收回应。不同的是参数是字符串类型的那个函数,每次发送一条命令,并接受服务器的响应,根据响应的信息来判断交互的结果是否成功。而参数是字符串数组的函数每次发送的是一组命令,用于和服务器的交互,这个函数主要是用于ESMTP服务器的验证的功能,因为验证的过程是一个等待然后又输入的过程,因此将他们放在一个数组中有利于理解和操作。而他们的实现主要是通过调用上面的发送SMTP命令函数SendCommand以及接受SMTP服务器响应的函数RecvResponse来实现的。具体的代码如下所示:
private bool Dialog(string str,string errstr)
{
bool flag=false;
if(str==null||str.Trim()=="")
{
flag=true;
}
if(SendCommand(str))
{
string RR=RecvResponse();
//从返回的数据中截取前三位
string RRCode=RR.Substring(0,3);
//然后用这前三位与哈希表中正确的回应码比较
if(RightCodeHT[RRCode]!=null)
{
flag=true;
}
else
{
flag=false;
}
}
else
{
flag=false;
}
return flag;
}
发送一组命令主要用于服务器验证的重载函数为:
private bool Dialog(string[] str,string errstr)
{
for(int i=0;i<str.Length;i++)
{
//循环调用单个的与服务器的交互过程
if(!Dialog(str[i],""))
{
return false;
} 751com.cn
}
return true;
}
8) 邮件发送程序 SendMail
这是整个程序的核心部分。具体的实现SMTP协议的程序正是通过它一步一步实现并最终实现发送简单邮件甚至带附件的邮件的功能。而它的实现是调用以上给出的各个函数的结果。以下就简单的通过几个SMTP命令的格式来实现
private bool SendEmail()
{ 251com.cn
//连接网络
try
{
//建立一个TCP连接
tc=new TcpClient(mailserver,mailserverport);
}
catch
{
MessageBox.Show ("连接失败","请确认");
return false;
}
//获取当前流的资料
ns = tc.GetStream();
SMTPCodeAdd();
//验证网络连接是否正确
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] 下一页