private string qq(string str)
{
string username=null;
Byte[] orig=new Byte[1024];
Byte[] aim=new Byte[1024];
int x=str.Length;
string orig1=str;
if (x%3==1)
{
orig1=str+"\0\0";
}
if (x%3==2)
{
orig1=str+"\0";
}
int y=0;
int z=orig1.Length;
while(z!=0)
{
string orig2=orig1.Substring(y * 3,3); y++;
z=z-3;

orig=System.Text.Encoding.ASCII.GetBytes(orig2);
ToBase64Transform aa=new ToBase64Transform();
aa.TransformBlock(orig,0,orig.Length,aim,0);
string ss=System.Text.Encoding.ASCII.GetString(aim,0,aim.Length);
ss=ss.Substring(0,4);
username=username+ss;

}
return username;
} private void button5_Click(object sender, System.EventArgs e) { // 将鼠标形状改为漏斗状 Cursor cr = Cursor.Current; Cursor.Current = Cursors.Cross; //定义变量 string Data; byte[] szData; string CRLF = "\r\n"; //创建与服务器25端口的连接 TcpClient SmtpServ = new TcpClient("smtp.263.net",25);              TcpClient pop3Serv = new TcpClient("263.net",110); lstlog.Items.Clear();             //显示服务器初始信息 NetworkStream NetStrm = SmtpServ.GetStream(); StreamReader  RdStrm1= new StreamReader(pop3Serv.GetStream());
StreamReader  RdStrm= new StreamReader(SmtpServ.GetStream()); lstlog.Items.Add(RdStrm1.ReadLine());
lstlog.Items.Add(RdStrm.ReadLine());
// 身份验征
Data = "AUTH LOGIN " ;                 
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
lstlog.Items.Add("1 "+RdStrm.ReadLine());
Data = qq(textBox1.Text) ;                  
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
lstlog.Items.Add("2 "+RdStrm.ReadLine());
Data = qq(textBox2.Text) ;                  
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
lstlog.Items.Add("3 "+RdStrm.ReadLine());
// //标志发件人 Data = "HELO server " ;                   szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add("HELO"+RdStrm.ReadLine()); //标志发件人 Data = "MAIL FROM: " + "<" + "[email protected]" + ">" + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine()); // 标志收件人 Data = "RCPT TO: " + "<" + "[email protected]" + ">" + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine());
//准备发送内容 Data = "DATA " ; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine());                //发送主题 Data = "SUBJECT: "+"MMYY" + CRLF ; //发送内容 Data = Data+ "悄虚" + CRLF ; //结束发送 Data = Data+ "." + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine());                //退出 Data = "QUIT " + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); lstlog.Items.Add(RdStrm.ReadLine());                //关闭连接 NetStrm.Close(); RdStrm.Close(); lstlog.Items.Add("连接关闭"); lstlog.Items.Add("发送成功");  //将鼠标恢复箭头状 Cursor.Current = cr; }

解决方案 »

  1.   

    参考微软舍区的一篇文章,介绍了三种不同方法.在.NET中使用SMTP发送邮件
    http://www.microsoft.com/china/community/article.asp?oBODY=TechZone/TechArticle/TechDoc/sendmail&oXSLT=TechZone/TechArticle/TechContent
      

  2.   

    http://www.csdn.net/develop/article/17/17189.shtm
    在.NET中使用SMTP发送邮件
    http://www.microsoft.com/china/community/article.asp?oBODY=TechZone/TechArticle/TechDoc/sendmail&oXSLT=TechZone/TechArticle/TechContent
    C# - MailSender 邮件发送组件源代码 (支持ESMTP, 附件)
    http://www.csdn.net/develop/Read_Article.asp?Id=18223