.NET 框架类在asp.net 中的应用(二)

//用 ASP.NET 实现邮件系统

System.Web.Mail名称空间
SmtpMail 是设定SMTP服务器
MailMessage最丰富

MailMessage m = new MailMessage();
m.Form = tbFrom.Text;
m.To = tbTo.Text;
m.Subject = tbSubject.Text;
m.Body = tbBody.Text;
//优先级
switch(ddlp.SelectedIndex)
{
case 0:
m.Priority = MailPriority.High;
break;
case 1:
m.Priority = MailPriority.Low;
break;
default:
m.Priority = MailPriority.Normal;
break;
}

//格式
if(ddlp.SelectedIndex == 0)
{
m.BodyFormat = MailFormat.Text;
}
else
{
m.BodyFormat = MailFormat.Html;
}
//设置服务器
if(tbServer.Text!="")
{
SmtpMail.SmtpServer = tbServer.Text;
}
//处理附件
string strFileName = FileSelect.PostedFile.FileName;
if(strFileName!="")
{
m.Attachments.Add(new MailAttachment(strFileName));
}
SmtpMail.Send(m);

MailMessage的主要属性

Form:源地址
To:目的地址
Subject:邮件主题
priority:邮件优先级
Attachements:附件
Bcc:暗送地址
Cc:抄送地址
Body:邮件内容主体
Bodyformat:邮件格式(Html,Text)
Bodyencoding:邮件编码(Base64,UUencode)

用Socket来实现Email系统

在Telnet下收发邮件
-POP3服务器 端口110
-SMTP服务器 端口25
常用命令:
-发送:
 Mail From
 Rcpt To
 Data
-收邮件:
 Stat:查询有几条新邮件
 Retr n:查询指定邮件内容
 Dele n:删除指定邮件

邮件收发系统

public class SMTP
{
 public SMTP(){}
 public bool Send(string strSmtpServer,int nPort,string strSend,string strReceive,string strSubject,string strContent)
 {
 string smtpserer = strSmtpServer;
 TcpClient tcpc = new TcpClient();
 try
 {
 tcpc.Connect(smtpserver,nPort);
 StreamReader sr;
 string strCmd;
 sr = new StreamReader(tcpc.GetStream(),Encoding.Default);
 //服务器连接成功以后,首先向服务器发送HELLO命令
 strCmd = "Hello guo!";
 SenSmtpCmd(tcpc,strCmd);
 //然后向服务器发送信件的成员的信箱
 strCmd = "mail from:"+strSend;
 SenSmtpCmd(tcpc,strCmd);
 //向服务器发送收件人的信箱
 SenSmtpCmd = "rcpt to:" +strReceive;
 SenSmtpCmd(tcpc,strCmd);
 //所有的准备工作都已经准备好了,下面开始进行邮件部分
 strCmd = "data";
 SenSmtpCmd(tcpc,strCmd);
 //邮件内容
 strCmd = "Date:1234567\r\n";
 strCmd = strCmd + "From:"+strSend +"\r\n";
 strCmd = strCmd + "To:" + strReceive +"\r\n";
 strCmd = strCmd +"Subject:"+strSubject +"\r\n\r\n";
 strCmd = strCmd +strContent +"\r\n\r\n";
 SenSmtpCmd(tcpc,strCmd);
 strCmd = "\r\n.\r\n";
 SenSmtpCmd(tcpc,strCmd);
 tcpc.Close();
 return true;
 }
 catch
 {
 return false;
 }
 }
}

void SenSmtpCmd(TcpClient tcpc,String strCmd)
{
 byte[] arrCmd;
 string strRet;
 StreamReader sr;
 Stream s;
 s = tcpc.GetStream();
 strCmd = strCmd+"\r\n";
 arrCmd = Encoding.Default.GetBytes(strCmd.ToCharArray());
 s = tcpc.GetStream():
 s.Write(arrCmd,0,strCmd.Length);
 //以下用于程序调试,显示服务器回应信息
 sr = new StreamReader(tcpc.GetStream(),Encoding.Default);
 strRet = sr.ReadLine();
 return;
}


未完待续。。。。

你可能感兴趣的:(asp.net)