C#实现SMTP服务器,使用TCP命令实现,功能比较完善[7]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 qs1976 的 blog

      base64encode(filepath.substring(filepath.lastindexof("\\")+1))+"?=\""+crlf;
     sendbufferstr += "content-transfer-encoding: base64"+crlf;
     sendbufferstr += "content-disposition: attachment;"+crlf;
     sendbufferstr += " filename=\"=?"+mailmessage.charset.toupper()+"?b?"+
      base64encode(filepath.substring(filepath.lastindexof("\\")+1))+"?=\""+crlf+crlf;
     sendbufferstr += getstream(filepath)+crlf+crlf;
    }
    sendbufferstr += "--====="+
     (html?"001_dragon520636771063_":"001_dragon303406132050_")+"=====--"+crlf+crlf;
   }
 
   sendbufferstr += crlf + "." + crlf;//内容结束

   if(!dialog(sendbufferstr,"错误信件信息"))
    return false;

   sendbufferstr="quit" + crlf;
   if(!dialog(sendbufferstr,"断开连接时错误"))
    return false;

   networkstream.close();
   tcpclient.close();
   return true;
  }
 }

 

 public class smtpmail
 {
  private static string _smtpserver;

  /// <summary>
  /// 格式:smtpaccount:password@smtpserveraddress<br>
  /// 或者:smtpserveraddress<br>
  /// <code>
  /// smtpmail.smtpserver="user:12345678@smtp.126.com";
  /// //或者:
  /// smtpmail.smtpserver="smtp.126.com";
  /// 或者:
  /// smtpmail.smtpserver=smtpserverhelper.getsmtpserver("user","12345678","smtp.126.com");
  /// </code>
  /// </summary>
  public static string smtpserver
  {
   set { _smtpserver=value;}
   get { return _smtpserver;}
  }

  public static bool send(mailmessage mailmessage,string username,string password)
  {
   smtpserverhelper helper=new smtpserverhelper();
   return helper.sendemail(_smtpserver,25,username,password,mailmessage);
  }

 }

 #endregion
}




using system;
using nunit.framework;


namespace skydev.web.mail
{
 /// <summary>
 /// test 的摘要说明。
 /// </summary>
 [testfixture]
 public class testsmtpmail
 {
  //安装测试用例,完成初始化操作
  [setup] 
  public void setup()
  {   
  }

  //测试结束完成清理操作
  [teardown]   
  public void teardown()
  {
  
  }
  
      [test]
  public void testmailattachments()
  { 
   skydev.web.mail.mailattachments attachments=new mailattachments();
   assert.areequal(0,attachments.count,"初始化mailattachments");
   attachments.add("c:\\autoexec.bat");
   assert.areequal(1,attachments.count,"增加附件(附件确实存在)");
   attachments.add("c:\\autoexec.dat.txt");
   assert.areequal(1,attachments.count,"增加附件(附件不存在)");
   attachments.clear();
   assert.areequal(0,attachments.count,"清除附件");
  }

  [test]
  public void testmailmessage()
  { 
   mailmessage message=new mailmessage();   
   assert.areequal(0,message.attachments.count,"初始化mailattachments");
   assert.areequal(mailformat.text,message.bodyformat,"邮件格式");
   assert.areequal("gb2312",message.charset,"缺省的字符集");
  }

  [test]
  public void testsendmail()
  { 
   smtpmail.smtpserver="smtp.126.com";
   mailmessage mail=new mailmessage();
   mail.from="qs1976@126.com";
   mail.fromname="曾青松";
   mail.addrecipients("qs1976@126.com");
   mail.subject="主题:测试邮件";
   mail.bodyformat=mailformat.text;
   mail.body="测试的内容.";

本文关键:C#实现SMTP服务器,使用TCP命令实现,功能比较完善
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top