亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? server.cs

?? email 發送 asp.net 2.0開發
?? CS
?? 第 1 頁 / 共 2 頁
字號:
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Collections;

namespace HBJ.MailSender.SMTP {

	public enum MailFormat{Text,HTML};
	public enum MailPriority{Low=1,Normal=3,High=5};

	#region Class mailAttachments
	public class MailAttachments {
		private const int MaxAttachmentNum=10;
		private IList _Attachments;

		public MailAttachments() {
			_Attachments=new ArrayList(); 
		}

		public string this[int index] {
			get { return (string)_Attachments[index];}
		}
		/// <summary>
		/// 添加郵件附件
		/// </summary>
		/// <param name="FilePath">附件的絕對路徑</param>
		public void Add(params string[] filePath) {
			if(filePath==null) {
				throw(new ArgumentNullException("非法的附件"));
			}
			else {    
				for(int i=0;i<filePath.Length;i++) {
					Add(filePath[i]);
				}
			}
		}

		/// <summary>
		/// 添加一個附件,當指定的附件不存在時,忽略該附件,不產生異常。
		/// </summary>
		/// <param name="filePath">附件的絕對路徑</param>
		public void Add(string  filePath) {
			//當附件存在時才加入,否則忽略
			if (System.IO.File.Exists(filePath)) {
				if (_Attachments.Count<MaxAttachmentNum) {
					_Attachments.Add(filePath);
				}
			}
		}

		public void Clear() {//清除所有附件
			_Attachments.Clear();
		}

		public int Count {//獲取附件個數
			get { return _Attachments.Count;}
		}

	}
	#endregion//end Class mailAttachments

 

	#region Class MailMessage
	/// <summary>
	/// MailMessage 表示SMTP要發送的一封郵件的消息。
	/// </summary>
	public class MailMessage {

		private const int MaxRecipientNum=10;

		public MailMessage() {   
			_Recipients=new ArrayList();//收件人列表
			_Attachments=new MailAttachments();//附件
			_BodyFormat=MailFormat.Text;//缺省的郵件格式為Text
			_Priority=MailPriority.Normal;
			_Charset="GB2312";
		}

		/// <summary>
		/// 設定語言代碼,默認設定為GB2312,如不需要可設置為""
		/// </summary>
		public string Charset {
			get { return _Charset;}
			set { _Charset=value;}
		}

		public string From {
			get{ return _From;}
			set { _From=value;}
		}

		public string FromName {
			get { return _FromName;}
			set { _FromName=value;}
		}
		public string Body {
			get { return _Body;}
			set { _Body=value;}
		}

		public string Subject {
			get { return _Subject;}
			set { _Subject=value;}
		}

		public MailAttachments Attachments {
			get {return _Attachments;}
			set { _Attachments=value;}
		}

		public MailPriority Priority {
			get { return _Priority;}
			set { _Priority=value;}
		}

		public IList Recipients {
			get { return _Recipients;}
		}
		/// <summary>
		/// 增加一個收件人地址
		/// </summary>
		/// <param name="recipient">收件人的Email地址</param>
		public void AddRecipients(string recipient) {
		//先檢查郵件地址是否符合規范
			if (_Recipients.Count<MaxRecipientNum) {
				_Recipients.Add(recipient);//增加到收件人列表
			}
		}

		public void AddRecipients(params string[] recipient) {
			if (recipient==null) {
				throw (new ArgumentException("收件人不能為空."));
			}
			else {
				for (int i=0;i<recipient.Length;i++) {
					AddRecipients(recipient[i]);
				}
			}
		}

		public MailFormat BodyFormat {
			set { _BodyFormat=value;}
			get { return _BodyFormat;}
		}

		private string _From;//發件人地址
		private string _FromName;//發件人姓名
		private IList _Recipients;//收件人
		private MailAttachments _Attachments;//附件
		private string _Body;//內容
		private string _Subject;//主題
		private MailFormat _BodyFormat;//郵件格式
		private string _Charset="GB2312";//字符編碼格式
		private MailPriority _Priority;//郵件優先級
	}
	#endregion 


	#region Class SmtpMail
	public class SmtpServerHelper {

			private string CRLF="\r\n";//回車換行

			/// <summary>
			/// 錯誤消息反饋
			/// </summary>
			private string errmsg;

			/// <summary>
			/// TcpClient對象,用于連接服務器
			/// </summary> 
			private TcpClient tcpClient;

			/// <summary>
			/// NetworkStream對象
			/// </summary> 
			private NetworkStream networkStream;

			/// <summary>
			/// 服務器交互記錄
			/// </summary>
			private string logs="";

			/// <summary>
			/// SMTP錯誤代碼哈希表
			/// </summary>
			private Hashtable ErrCodeHT = new Hashtable();

			/// <summary>
			/// SMTP正確代碼哈希表
			/// </summary>
			private Hashtable RightCodeHT = new Hashtable();

			public SmtpServerHelper() {
				SMTPCodeAdd();//初始化SMTPCode
			}

			~SmtpServerHelper() {
				networkStream.Close();
				tcpClient.Close();
			}

			/// <summary>
			/// 將字符串編碼為Base64字符串
			/// </summary>
			/// <param name="str">要編碼的字符串</param>
			private string Base64Encode(string str) {
				byte[] barray;
				barray=Encoding.Default.GetBytes(str);
				return Convert.ToBase64String(barray);
			}

			/// <summary>
			/// 將Base64字符串解碼為普通字符串
			/// </summary>
			/// <param name="str">要解碼的字符串</param>
			private string Base64Decode(string str) {
				byte[] barray;
				barray=Convert.FromBase64String(str);
				return Encoding.Default.GetString(barray);
			}

			/// <summary>
			/// 得到上傳附件的文件流
			/// </summary>
			/// <param name="FilePath">附件的絕對路徑</param>
			private string GetStream(string FilePath) {
				//建立文件流對象
				System.IO.FileStream FileStr=new System.IO.FileStream(FilePath,System.IO.FileMode.Open);
				byte[] by=new byte[System.Convert.ToInt32(FileStr.Length)];
				FileStr.Read(by,0,by.Length);
				FileStr.Close();
				return(System.Convert.ToBase64String(by));
			}

			/// <summary>
			/// SMTP回應代碼哈希表
			/// </summary>
			private void SMTPCodeAdd() {
				//[RFC 821 4.2.1.]
				/*
					4.2.2.  NUMERIC ORDER LIST OF REPLY CODES

				211 System status, or system help reply
				214 Help message
					[Information on how to use the receiver or the meaning of a
					particular non-standard command; this reply is useful only
					to the human user]
				220 <domain> Service ready
				221 <domain> Service closing transmission channel
				250 Requested mail action okay, completed
				251 User not local; will forward to <forward-path>
				          
				354 Start mail input; end with <CRLF>.<CRLF>
				          
				421 <domain> Service not available,
					closing transmission channel
					[This may be a reply to any command if the service knows it
					must shut down]
				450 Requested mail action not taken: mailbox unavailable
					[E.g., mailbox busy]
				451 Requested action aborted: local error in processing
				452 Requested action not taken: insufficient system storage
				          
				500 Syntax error, command unrecognized
					[This may include errors such as command line too long]
				501 Syntax error in parameters or arguments
				502 Command not implemented
				503 Bad sequence of commands
				504 Command parameter not implemented
				550 Requested action not taken: mailbox unavailable
					[E.g., mailbox not found, no access]
				551 User not local; please try <forward-path>
				552 Requested mail action aborted: exceeded storage allocation
				553 Requested action not taken: mailbox name not allowed
					[E.g., mailbox syntax incorrect]
				554 Transaction failed
				   
				*/

				ErrCodeHT.Add("421","服務未就緒,關閉傳輸信道");
				ErrCodeHT.Add("432","需要一個密碼轉換");
				ErrCodeHT.Add("450","要求的郵件操作未完成,郵箱不可用(例如,郵箱忙)");
				ErrCodeHT.Add("451","放棄要求的操作;處理過程中出錯");
				ErrCodeHT.Add("452","系統存儲不足,要求的操作未執行");
				ErrCodeHT.Add("454","臨時認證失敗");
				ErrCodeHT.Add("500","郵箱地址錯誤");
				ErrCodeHT.Add("501","參數格式錯誤");
				ErrCodeHT.Add("502","命令不可實現");
				ErrCodeHT.Add("503","服務器需要SMTP驗證");
				ErrCodeHT.Add("504","命令參數不可實現");
				ErrCodeHT.Add("530","需要認證");
				ErrCodeHT.Add("534","認證機制過于簡單");
				ErrCodeHT.Add("538","當前請求的認證機制需要加密");
				ErrCodeHT.Add("550","要求的郵件操作未完成,郵箱不可用(例如,郵箱未找到,或不可訪問)");
				ErrCodeHT.Add("551","用戶非本地,請嘗試<forward-path>");
				ErrCodeHT.Add("552","過量的存儲分配,要求的操作未執行");
				ErrCodeHT.Add("553","郵箱名不可用,要求的操作未執行(例如郵箱格式錯誤)");
				ErrCodeHT.Add("554","傳輸失敗");
				   

				/*
				211 System status, or system help reply
				214 Help message
					[Information on how to use the receiver or the meaning of a
					particular non-standard command; this reply is useful only
					to the human user]
				220 <domain> Service ready
				221 <domain> Service closing transmission channel
				250 Requested mail action okay, completed
				251 User not local; will forward to <forward-path>
				          
				354 Start mail input; end with <CRLF>.<CRLF>
				*/

				RightCodeHT.Add("220","服務就緒");
				RightCodeHT.Add("221","服務關閉傳輸信道");
				RightCodeHT.Add("235","驗證成功");
				RightCodeHT.Add("250","要求的郵件操作完成");
				RightCodeHT.Add("251","非本地用戶,將轉發向<forward-path>");
				RightCodeHT.Add("334","服務器響應驗證Base64字符串");
				RightCodeHT.Add("354","開始郵件輸入,以<CRLF>.<CRLF>結束");

			}

			/// <summary>
			/// 發送SMTP命令
			/// </summary> 
			private bool SendCommand(string str) {
				byte[]WriteBuffer;
				if(str==null||str.Trim()==String.Empty) {
					return true;
				}

				logs+=str;
				WriteBuffer = Encoding.Default.GetBytes(str);

				try {
					networkStream.Write(WriteBuffer,0,WriteBuffer.Length);
				}
				catch {
					errmsg="網絡連接錯誤";
					return false;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本在线不卡视频一二三区| 91尤物视频在线观看| 国产成人亚洲综合a∨婷婷 | 亚洲精品综合在线| 毛片av一区二区| 色综合天天性综合| 久久综合久久久久88| 亚洲国产精品自拍| 99久久伊人精品| 久久久久国产免费免费 | 欧美在线视频日韩| 国产欧美日韩视频一区二区| 日本大胆欧美人术艺术动态| 一本大道久久精品懂色aⅴ| 久久伊人蜜桃av一区二区| 午夜电影一区二区三区| 一本色道综合亚洲| 国产精品免费久久| 国产乱码精品一品二品| 日韩欧美中文一区| 日韩中文字幕91| 欧美亚洲动漫精品| 亚洲婷婷综合久久一本伊一区| 国产一区二区成人久久免费影院| 91精品国产综合久久久久| 一区二区三区成人在线视频| 不卡视频在线观看| 中国色在线观看另类| 国产不卡视频在线观看| 久久久久久久久97黄色工厂| 国内欧美视频一区二区| 欧美精品一区二区三区蜜桃视频 | 亚洲欧洲av在线| 成人精品一区二区三区四区| 精品成人在线观看| 久久99最新地址| 精品国产成人在线影院 | 三级成人在线视频| 欧美色图12p| 日日夜夜免费精品| 91精品国产欧美一区二区成人| 午夜不卡av在线| 欧美一区二区三区白人| 麻豆精品视频在线观看免费| 日韩一区二区三区三四区视频在线观看 | 中文幕一区二区三区久久蜜桃| 国产成人免费视频网站| 中文字幕精品在线不卡| 色综合色综合色综合| 一区二区三区在线免费播放| 欧美在线一二三四区| 日韩精品免费视频人成| 久久综合久久综合亚洲| 成人综合婷婷国产精品久久| 亚洲欧洲综合另类| 欧美精品一二三| 国产一区二区三区四区五区入口 | 一区二区三区精品久久久| 欧美日韩色一区| 国产在线日韩欧美| 亚洲欧美另类久久久精品| 欧美一区二区三区免费在线看| 国产精品影音先锋| 亚洲一区二区视频在线| 日韩免费观看高清完整版在线观看| 国产精华液一区二区三区| 亚洲激情五月婷婷| 26uuu亚洲综合色| 色偷偷成人一区二区三区91| 免费久久99精品国产| 综合自拍亚洲综合图不卡区| 欧美日韩亚洲不卡| 国产99久久精品| 亚洲电影一级片| 久久久精品2019中文字幕之3| 色欧美88888久久久久久影院| 美女一区二区久久| 亚洲日本青草视频在线怡红院 | 欧美视频在线播放| 国产乱码精品一区二区三| 亚洲欧美经典视频| 久久五月婷婷丁香社区| 色狠狠一区二区三区香蕉| 久久er精品视频| 五月婷婷久久综合| 亚洲日本va在线观看| 久久久亚洲精品石原莉奈| 欧美疯狂性受xxxxx喷水图片| 成人午夜免费电影| 另类小说综合欧美亚洲| 有码一区二区三区| 日本一区二区综合亚洲| 日韩一区二区电影| 欧美日韩免费电影| 91免费在线视频观看| 国产成人夜色高潮福利影视| 美女视频一区二区三区| 亚洲成人免费电影| 亚洲欧美日韩国产一区二区三区| 久久久久久一二三区| 日韩欧美成人一区| 欧美一级搡bbbb搡bbbb| 欧美三级视频在线观看| 色美美综合视频| av网站一区二区三区| 国产福利一区二区| 久久精品99久久久| 久草中文综合在线| 美女一区二区在线观看| 天天综合天天做天天综合| 亚洲一区二区三区四区五区中文| 最新久久zyz资源站| 中文字幕永久在线不卡| 亚洲国产高清aⅴ视频| 国产人伦精品一区二区| 国产丝袜在线精品| 国产无遮挡一区二区三区毛片日本| 欧美精品一区二区久久久| 日韩女优制服丝袜电影| 最新日韩在线视频| 国产精品久久久久一区二区三区共| 国产日韩精品久久久| 久久久久久久精| 国产三级精品视频| 1024成人网| 亚洲久本草在线中文字幕| 亚洲线精品一区二区三区八戒| 亚洲一区在线免费观看| 午夜私人影院久久久久| 日本成人中文字幕| 国产一区二区三区在线观看免费视频| 国产传媒一区在线| 成人app软件下载大全免费| 日本韩国精品在线| 在线综合视频播放| 精品成人在线观看| 亚洲色图清纯唯美| 午夜欧美在线一二页| 理论电影国产精品| 国产成人精品在线看| 99精品视频一区二区| 欧美午夜理伦三级在线观看| 91精品国产综合久久久蜜臀图片| 精品少妇一区二区三区日产乱码| 国产亚洲视频系列| 亚洲精品欧美激情| 日本va欧美va精品发布| 国产精品一区二区三区99| 92精品国产成人观看免费| 欧美日韩不卡一区二区| 久久精品夜夜夜夜久久| 伊人性伊人情综合网| 激情综合五月婷婷| 色94色欧美sute亚洲线路一ni| 欧美一区日韩一区| 中文一区二区在线观看| 性感美女久久精品| 粉嫩高潮美女一区二区三区| 欧美中文字幕久久| 久久青草欧美一区二区三区| 玉米视频成人免费看| 韩国三级中文字幕hd久久精品| 99国产精品国产精品毛片| 日韩一区和二区| 亚洲日本在线天堂| 经典三级一区二区| 欧美日韩高清影院| 中文字幕中文字幕在线一区| 久久国产精品99久久人人澡| 91福利在线导航| 国产精品你懂的在线欣赏| 蜜臂av日日欢夜夜爽一区| 一本在线高清不卡dvd| 2024国产精品视频| 舔着乳尖日韩一区| 色域天天综合网| 中文字幕欧美激情| 激情欧美一区二区三区在线观看| 91福利区一区二区三区| 中文字幕免费观看一区| 激情av综合网| 777xxx欧美| 亚洲一区二区三区四区中文字幕| 豆国产96在线|亚洲| www国产精品av| 久久精品99久久久| 欧美videos中文字幕| 日韩黄色免费网站| 91精品国产色综合久久 | 中文字幕亚洲成人| 国产91丝袜在线观看| 久久久久久久久久电影| 韩国av一区二区| 26uuu成人网一区二区三区| 裸体一区二区三区| 欧美不卡在线视频| 国内不卡的二区三区中文字幕| 日韩精品一区国产麻豆| 精品无人区卡一卡二卡三乱码免费卡 | 日韩一级欧美一级|