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

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

?? sendmail.cs

?? 一個畢業設計文檔
?? CS
?? 第 1 頁 / 共 2 頁
字號:
			} 

			return SendEmail(); 

		} 


		/// <summary> 
		/// 發送郵件方法 
		/// </summary> 
		/// <param name="smtpserver">smtp服務器信息,如"username:password@www.smtpserver.com:25",也可去掉部分次要信 

			
		public bool Send(string smtpserver) 
		{ 
			MailDomain=smtpserver; 
			return Send(); 
		} 


		/// <summary> 
		/// 發送郵件方法 
		/// </summary> 
		/// <param name="smtpserver">smtp服務器信息,如"username:password@www.smtpserver.com:25",也可去掉部分次要信 

			
		/// <param name="from">發件人mail地址</param> 
		/// <param name="fromname">發件人姓名</param> 
		/// <param name="to">收件人地址</param> 
		/// <param name="toname">收件人姓名</param> 
		/// <param name="html">是否HTML郵件</param> 
		/// <param name="subject">郵件主題</param> 
		/// <param name="body">郵件正文</param> 
		public bool Send(string smtpserver,string from,string fromname,string to,bool html,string 

			subject,string body) 
		{ 
			MailDomain=smtpserver; 
			From=from; 
			FromName=fromname; 
			Recipient=to; 
			Html=html; 
			Subject=subject; 
			Body=body; 
			return Send(); 
		} 


		void Dispose() 
		{ 
			if(ns!=null)ns.Close(); 
			if(tc!=null)tc.Close(); 
		} 

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

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


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

			WriteBuffer = Encoding.Default.GetBytes(str); 
			try 
			{ 
				ns.Write(WriteBuffer,0,WriteBuffer.Length); 
			} 
			catch 
			{ 
				errmsg="網絡連接錯誤"; 
				return false; 
			} 
			return true; 
		} 

		/// <summary> 
		/// 接收SMTP服務器回應 
		/// </summary> 
		private string RecvResponse() 
		{ 
			int StreamSize; 
			string ReturnValue = String.Empty; 
			byte[] ReadBuffer = new byte[1024] ; 
			try 
			{ 
				StreamSize=ns.Read(ReadBuffer,0,ReadBuffer.Length); 
			} 
			catch(Exception ex)
			{ 
				MessageBox.Show (ex.ToString ());
				return "false"; 
			} 

			if (StreamSize==0) 
			{ 
				return ReturnValue ; 
			} 
			else 
			{ 
				ReturnValue = Encoding.Default.GetString(ReadBuffer).Substring(0,StreamSize); 
				return ReturnValue; 
			} 
		} 

		/// <summary> 
		/// 與服務器交互,發送一條命令并接收回應。 
		/// </summary> 
		/// <param name="str">一個要發送的命令</param> 
		/// <param name="errstr">如果錯誤,要反饋的信息</param> 
		private bool Dialog(string str,string errstr) 
		{ 
				
			if(str==null||str.Trim()=="") 
			{ 
				return true; 
			} 
			if(SendCommand(str)) 
			{ 
				string RR=RecvResponse(); 
				if(RR=="false") 
				{ 
					return false; 
				} 
				try
				{
					string RRCode=RR.Substring(0,3); 
					if(RightCodeHT[RRCode]!=null) 
					{ 
						return true; 
					} 
					else 
					{ 
						if(ErrCodeHT[RRCode]!=null) 
						{ 
							errmsg+=(RRCode+ErrCodeHT[RRCode].ToString()); 
							errmsg+=enter; 
						} 
						else 
						{ 
							errmsg+=RR; 
						} 
						errmsg+=errstr; 
						return false; 
					} 
				}
				catch
				{
					MessageBox.Show ("發送的附件超過本服務器對個人軟件的支持!","請檢查附件的大小");
					return false;
				}
			} 
			else 
			{ 
				return false; 
			} 
		}
				
		/// <summary> 
		/// 與服務器交互,發送一組命令并接收回應。 
		/// </summary> 

		private bool Dialog(string[] str,string errstr) 
		{ 
			for(int i=0;i<str.Length;i++) 
			{ 
				//如果在身份驗證階段有一個不成功,就返回錯誤標志位
				if(!Dialog(str[i],"")) 
				{ 
					errmsg+=enter; 
					errmsg+=errstr; 
					return false; 
				} 
			} 

			//身份驗證全部正確的話,則返回正確標志位
			return true; 
		} 

		/// <summary> 
		/// SendEmail 
		/// </summary> 
		/// <returns></returns> 
		private bool SendEmail() 
		{ 
			try 
			{ 
				tc=new TcpClient(mailserver,mailserverport); 
			} 
			catch
			{ 
				MessageBox.Show ("連接失敗","請確認");
				return false; 
			} 

			ns = tc.GetStream(); 
			SMTPCodeAdd(); 

			//驗證網絡連接是否正確 
			if(RightCodeHT[RecvResponse().Substring(0,3)]==null) 
			{ 
				errmsg="網絡連接失敗"; 
				return false; 
			} 


			string[] SendBuffer; 
			string SendBufferstr; 

			//進行SMTP驗證 
			if(ESmtp) 
			{ 
				SendBuffer=new String[4]; 
				SendBuffer[0]="EHLO " + mailserver + enter; 
				SendBuffer[1]="AUTH LOGIN" + enter; 
				SendBuffer[2]=Base64Encode(username) + enter; 
				SendBuffer[3]=Base64Encode(password) + enter; 
				if(!Dialog(SendBuffer,"SMTP服務器驗證失敗,請核對用戶名和密碼。"))
				{
					MessageBox.Show ("SMTP服務器驗證失敗,請核對用戶名和密碼。");
					return false;
				}
			} 
			else 
			{ 
				SendBufferstr="HELO " + mailserver + enter; 
				if(!Dialog(SendBufferstr,"")) 
					return false; 
			} 

			// 
			SendBufferstr="MAIL FROM:<" + From + ">" + enter; 
			if(!Dialog(SendBufferstr,"發件人地址錯誤,或不能為空"))
			{
				MessageBox.Show("發件人地址錯誤,或不能為空");
				return false; 
			}

			 
			//把傳過來的收件人的地址分割然后提交給服務器
			string split=",";
			string []address=Regex.Split (RecipientName,split);
			SendBuffer=new string [address.Length];
			for(int i=0;i<SendBuffer.Length;i++)
			{
				SendBuffer[i]="RCPT TO:<" +address[i]+">" + enter;
			}
			if(!Dialog(SendBuffer,"收件人地址有誤")) 
			{
				MessageBox.Show("收件人地址有誤");
				return false; 
			}

				
			SendBufferstr="DATA" + enter; 
			if(!Dialog(SendBufferstr,"")) 
				return false; 

			SendBufferstr="From:" + FromName + "<" + From +">" +enter; 
			SendBufferstr += "To:<"+RecipientName+">"+enter;
			
			

			SendBufferstr+=((Subject==String.Empty || Subject==null)?"Subject:":((Charset=="")?("Subject:" + 

				Subject):("Subject:" + "=?" + Charset.ToUpper() + "?B?" + Base64Encode(Subject) +"?="))) + enter; 
			SendBufferstr+="X-Priority:" + priority + enter; 
			SendBufferstr+="X-Mailer: ArgentSwan Mail Sender" + enter; 
			SendBufferstr+="MIME-Version: 1.0" + enter; 

			//MIME定義了5個新的信頭字段,可以與原有信頭字段一樣,用在RF822郵件的首部中。
			//1.MIME版本信頭字段				格式:MIME-Version:1.0 <CRLF>
			//2.郵件唯一標識信頭字段			格式:Content-ID:唯一標識信件的字符串  <CRLF>
			//3.郵件內容描述信頭字段			格式:Content-Description:描述文本 <CRLF>
			//4.MIME郵件的內容類型信頭字段		格式:Content-Type:主類別標識符/子類別標識符 [;參數列表]  <CRLF>
			//5.內容傳送編碼方式信頭字段		格式:Content-Transfer-Encoding:編碼方式標識符 <CRLF>

			if(Attachments.Count!=0) 
			{ 
				//mixed	 按照特定順序的幾個獨立部分
				SendBufferstr+="Content-Type: multipart/mixed;" + enter; 
				SendBufferstr += " boundary=\"***"+ 

					(Html?"001_yinhu19821115":"001_yinhu19831115")+"***\""+enter+enter; 
			} 

			if(Html) 
			{ 
				if(Attachments.Count==0) 
				{ 
					//multipart多部分  alternative 不同格式的同一郵件
					SendBufferstr += "Content-Type: multipart/alternative;"+enter;//內容格式和分隔符 
					SendBufferstr += " boundary=\"***003_yinhu19821115***\""+enter+enter; 

					SendBufferstr += "This is a multi-part message in MIME format."+enter+enter; 
				} 
				else 
				{ 
					SendBufferstr +="This is a multi-part message in MIME format."+enter+enter; 
					SendBufferstr += "--***001_yinhu19821115***"+enter; 
					SendBufferstr += "Content-Type: multipart/alternative;"+enter;//內容格式和分隔符 
					SendBufferstr += " boundary=\"***003_yinhu19821115***\""+enter+enter; 


				}
				SendBufferstr += "--***003_yinhu19821115***"+enter; 
				SendBufferstr += "Content-Type: text/plain;"+ enter; 
				SendBufferstr += ((Charset=="")?(" charset=\"iso-8859-1\""):(" charset=\"" + 

					Charset.ToLower() + "\"")) + enter; 
				SendBufferstr+="Content-Transfer-Encoding: base64" + enter + enter; 
				SendBufferstr+= Base64Encode("郵件內容為HTML格式,請選擇HTML方式查看") + enter + enter; 

				SendBufferstr += "--***003_yinhu19821115***"+enter; 



				SendBufferstr+="Content-Type: text/html;" + enter; 
				SendBufferstr+=((Charset=="")?(" charset=\"iso-8859-1\""):(" charset=\"" + 

					Charset.ToLower() + "\"")) + enter; 
				SendBufferstr+="Content-Transfer-Encoding: base64" + enter + enter; 
				SendBufferstr+=Base64Encode(Body)+ enter + enter; 
				SendBufferstr += "--***003_yinhu19821115***--"+enter; 
			} 
			else 
			{ 
				if(Attachments.Count!=0) 
				{ 
					SendBufferstr += "--***001_yinhu19831115***"+enter; 
				} 
				SendBufferstr+="Content-Type: text/plain;" + enter; 
				SendBufferstr+=((Charset=="")?(" charset=\"iso-8859-1\""):(" charset=\"" + 

					Charset.ToLower() + "\"")) + enter; 
				SendBufferstr+="Content-Transfer-Encoding: base64" + enter + enter; 
				SendBufferstr+= Base64Encode(Body) + enter; 
			} 


			if(Attachments.Count!=0) 
			{ 
				for(int i=0;i<Attachments.Count;i++) 
				{ 
					string filepath = Attachments[i].ToString(); 
					SendBufferstr += "--***"+ 

						(Html?"001_yinhu19821115":"001_yinhu19831115") +"***"+enter; 
					//用于在電子郵件中傳輸一個含有任意數據的實體。內容是一個未解釋的字節序列。
					//當內容類型未知或者對數據沒有具體定義媒體類別時,通常使用它描述
					SendBufferstr += "Content-Type: application/octet-stream"+enter; 
					SendBufferstr += " name=\"=?"+Charset.ToUpper()+"?B?"+Base64Encode 

						(filepath.Substring(filepath.LastIndexOf("\\")+1))+"?=\""+enter; 
					SendBufferstr += "Content-Transfer-Encoding: base64"+enter; 
					SendBufferstr += "Content-Disposition: attachment;"+enter; 
					SendBufferstr += " filename=\"=?"+Charset.ToUpper()+"?B?"+Base64Encode 

						(filepath.Substring(filepath.LastIndexOf("\\")+1))+"?=\""+enter+enter; 
					SendBufferstr += GetStream(filepath)+enter+enter; 
				} 
				SendBufferstr += "--***"+ (Html?"001_yinhu19821115":"001_yinhu19831115") 

					+"***--"+enter+enter; 
			}
			
			SendBufferstr += enter + "." + enter; 

			if(!Dialog(SendBufferstr,"錯誤信件信息")) 
				return false; 

			SendBufferstr="QUIT" + enter; 
			if(!Dialog(SendBufferstr,"斷開連接時錯誤")) 
				return false; 

			ns.Close(); 
			tc.Close();
			return true; 
		}
		
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文一区二区完整视频在线观看| 欧日韩精品视频| 久久综合九色欧美综合狠狠| 黑人巨大精品欧美黑白配亚洲| 26uuu精品一区二区| 国产精品69久久久久水密桃| 国产精品久久久爽爽爽麻豆色哟哟| caoporn国产精品| 一区二区三区四区激情| 91精品综合久久久久久| 精品一区在线看| 自拍偷拍亚洲欧美日韩| 欧美疯狂做受xxxx富婆| 国产在线精品一区二区夜色| 国产精品久久久久永久免费观看| 在线观看不卡视频| 精品亚洲欧美一区| 亚洲老司机在线| 日韩精品资源二区在线| 成人网男人的天堂| 日日夜夜一区二区| 国产亚洲欧洲一区高清在线观看| 99国产精品视频免费观看| 日本亚洲免费观看| 国产精品久久久久影院老司 | 欧美在线观看一二区| 日韩主播视频在线| 欧美激情综合在线| 欧美日韩激情一区| 国产成人av福利| 亚洲国产精品久久一线不卡| 精品三级在线看| 在线观看国产一区二区| 国产伦精品一区二区三区免费 | 欧美肥妇毛茸茸| 国产91富婆露脸刺激对白| 亚洲成人黄色影院| 中文字幕av一区 二区| 91精品国产欧美日韩| 99国产精品久久久久久久久久| 久久av中文字幕片| 亚洲一区二区三区在线| 久久久亚洲精品石原莉奈| 欧美三级日韩在线| 99国产精品一区| 国产激情精品久久久第一区二区 | 樱桃国产成人精品视频| 久久综合九色综合欧美亚洲| 欧美日韩亚洲综合| 色久优优欧美色久优优| 国产成人福利片| 黑人巨大精品欧美黑白配亚洲| 亚洲国产va精品久久久不卡综合| **网站欧美大片在线观看| 久久亚洲影视婷婷| 日韩欧美国产系列| 91精品国产欧美一区二区成人 | 99久久婷婷国产综合精品电影| 精品亚洲成av人在线观看| 亚洲18色成人| 亚洲二区视频在线| 一区二区三区精品视频| 亚洲靠逼com| 亚洲啪啪综合av一区二区三区| 国产亚洲欧美在线| 久久久久久久综合狠狠综合| 日韩精品在线一区二区| 制服丝袜激情欧洲亚洲| 欧美日韩精品系列| 精品视频一区三区九区| 欧美三级日韩三级| 欧美色综合天天久久综合精品| 色综合久久88色综合天天6| 91一区二区在线观看| 99riav久久精品riav| 色综合欧美在线视频区| 一本大道久久a久久精品综合| 色猫猫国产区一区二在线视频| 91视频www| 在线一区二区三区四区| 欧美综合一区二区三区| 欧美绝品在线观看成人午夜影视| 欧美浪妇xxxx高跟鞋交| 日韩一区二区免费电影| 日韩欧美在线不卡| 精品福利视频一区二区三区| 久久精品视频一区二区| 中文字幕不卡三区| 亚洲精品欧美二区三区中文字幕| 亚洲免费高清视频在线| 亚洲成人av福利| 免费xxxx性欧美18vr| 国产精品资源在线| 91无套直看片红桃| 在线免费观看一区| 5858s免费视频成人| 久久这里只有精品首页| 中文字幕av资源一区| 一区二区在线观看视频在线观看| 午夜精品福利一区二区蜜股av| 免费黄网站欧美| 91精品在线免费观看| 精品99999| 综合在线观看色| 天堂av在线一区| 国产一区二区美女诱惑| 91在线无精精品入口| 欧美日韩夫妻久久| 国产日韩欧美高清在线| 一区二区三区日韩在线观看| 久久不见久久见免费视频1| 成人久久视频在线观看| 欧美日韩国产bt| 中文字幕欧美激情一区| 亚洲图片欧美色图| 国产激情视频一区二区在线观看| 一本久久精品一区二区| 精品久久久久久久一区二区蜜臀| 亚洲日本一区二区| 九色|91porny| 欧美色中文字幕| 国产精品系列在线| 久久精品久久精品| 色婷婷av一区二区三区大白胸| 日韩一级在线观看| 亚洲色图制服丝袜| 久久99国产乱子伦精品免费| 色视频一区二区| 日本一区二区动态图| 午夜不卡av在线| 色悠悠久久综合| 欧美韩国日本一区| 精品一区二区在线免费观看| 欧美亚洲国产一区在线观看网站 | 亚洲三级免费观看| 国产米奇在线777精品观看| 欧美日韩在线播| 国产精品色呦呦| 国产精品中文字幕日韩精品| 69堂精品视频| 亚洲第一在线综合网站| 一本到三区不卡视频| 国产精品视频一二三| 国产精一品亚洲二区在线视频| 欧美高清激情brazzers| 一区2区3区在线看| 99国产精品久久久久久久久久| 国产日韩一级二级三级| 极品少妇一区二区| 日韩一级黄色片| 午夜电影网一区| 欧美日韩一级黄| 亚洲在线视频网站| 一本色道**综合亚洲精品蜜桃冫| 国产精品嫩草99a| 丰满少妇在线播放bd日韩电影| 精品毛片乱码1区2区3区| 日本系列欧美系列| 91精品国产综合久久久久久久| 午夜精品在线看| 欧美无人高清视频在线观看| 亚洲制服丝袜在线| 欧美视频你懂的| 午夜国产不卡在线观看视频| 欧美久久久久久蜜桃| 亚洲777理论| 日韩一区二区三区观看| 蜜桃精品视频在线| 日韩精品专区在线| 国产精品自在欧美一区| 国产人成一区二区三区影院| 岛国一区二区在线观看| 综合av第一页| 欧洲精品视频在线观看| 视频一区中文字幕| 日韩一级高清毛片| 国产美女视频91| 国产精品女人毛片| 欧美在线观看视频一区二区三区| 亚洲mv大片欧洲mv大片精品| 欧美一区二区国产| 国产精品白丝av| 综合久久久久综合| 国产精品福利一区二区| 91网站最新网址| 五月激情综合婷婷| 精品国产第一区二区三区观看体验| 国产麻豆91精品| 亚洲精选视频在线| 555www色欧美视频| 国产成人精品综合在线观看| 亚洲视频一二三| 7777精品伊人久久久大香线蕉 | 国产亚洲制服色| 日本乱人伦aⅴ精品| 婷婷六月综合亚洲| 久久久久久久久久看片| 色综合久久中文综合久久97| 日本不卡视频在线| 国产精品妹子av|