⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendmail.cs

📁 这是一个邮件系统源码可以好好学习一下很好用的
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System; 
using System.Text; 
using System.IO; 
using System.Net; 
using System.Net.Sockets; 
using System.Collections; 
using System.Runtime .InteropServices ;
using System.Windows.Forms ;
//正则表达式需要用到的命名空间(本程序中主要用于切割字符串)
using System.Text .RegularExpressions ;
namespace MailSend
{
	public class SmtpMail 
	{ 
		public SmtpMail()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}

		//用来接收调用程序传来的附件路径
		private string []FilePath;
		
//		[DllImport("User32.dll")] 
//		public static extern int MessageBox(int h, string m, string c, int type);  
//

		/// <summary>
		/// 重载的构造函数,以便把相关的附件信息传入
		/// </summary>
		/// <param name="array"></param>
		public SmtpMail(ArrayList array) 
		{ 
			//在重载构造函数的同时,将FiilePath初始化
			FilePath=new string [array.Count ];
			Attachments = new System.Collections.ArrayList(); 
			for(int i=0;i<array.Count ;i++)
			{
				FilePath[i]=array[i].ToString ();
			}
				
			if(FilePath!=null)
			{
				AddAttachment(FilePath);
			}
		} 

			

		private string enter="\r\n"; 

		/// <summary> 
		/// 设定语言代码,默认设定为GB2312,如不需要可设置为"" 
		/// </summary> 
		private string _charset="GB2312"; 

		/// <summary> 
		/// 发件人地址 
		/// </summary> 
		private string _from=""; 

		/// <summary> 
		/// 发件人姓名 
		/// </summary> 
		private string _fromName=""; 

		/// <summary> 
		/// 回复邮件地址 
		/// </summary> 
		///public string ReplyTo=""; 

		/// <summary> 
		/// 收件人列表 
		/// </summary> 
		private string Recipient; 

		/// <summary> 
		/// 邮件服务器域名 
		/// </summary> 
		private string mailserver=""; 

		/// <summary> 
		/// 邮件服务器端口号 
		/// </summary> 
		private int mailserverport=25; 

		/// <summary> 
		/// SMTP认证时使用的用户名 
		/// </summary> 
		private string username=""; 

		/// <summary> 
		/// SMTP认证时使用的密码 
		/// </summary> 
		private string password=""; 

		/// <summary> 
		/// 是否需要SMTP验证 
		/// </summary> 
		private bool ESmtp=false; 

		/// <summary> 
		/// 是否Html邮件 
		/// </summary> 
		private bool _html=false; 


		/// <summary> 
		/// 邮件附件列表 
		/// </summary> 
		private IList Attachments; 

		/// <summary> 
		/// 邮件发送优先级,可设置为"High","Normal","Low"或"1","3","5" 
		/// </summary> 
		private string priority="Normal"; 

		/// <summary> 
		/// 邮件主题 
		/// </summary> 
		private string _subject; 

		/// <summary> 
		/// 邮件正文 
		/// </summary> 
		private string _body; 
	

		/// <summary> 
		/// 错误消息反馈 
		/// </summary> 
		private string errmsg; 

		/// <summary> 
		/// TcpClient对象,用于连接服务器 
		/// </summary> 
		private TcpClient tc; 

		/// <summary> 
		/// NetworkStream对象 
		/// </summary> 
		private NetworkStream ns; 

		/// <summary> 
		/// SMTP错误代码哈希表 
		/// </summary> 
		private Hashtable ErrCodeHT = new Hashtable(); 

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


		/// <summary> 
		/// 邮件主题 
		/// </summary> 
		public string Subject 
		{ 
			get 
			{ 
				return this._subject; 
			} 
			set 
			{ 
				this._subject = value; 
			} 
		} 

		/// <summary> 
		/// 邮件正文 
		/// </summary> 
		public string Body 
		{ 
			get 
			{ 
				return this._body; 
			} 
			set 
			{ 
				this._body = value; 
			} 
		} 


		/// <summary> 
		/// 发件人地址 
		/// </summary> 
		public string From 
		{ 
			get 
			{ 
				return _from; 
			} 
			set 
			{ 
				this._from = value; 
			} 
		} 

		/// <summary> 
		/// 设定语言代码,默认设定为GB2312,如不需要可设置为"" 
		/// </summary> 
		public string Charset 
		{ 
			get 
			{ 
				return this._charset; 
			} 
			set 
			{ 
				this._charset = value; 
			} 
		} 

		/// <summary> 
		/// 发件人姓名 
		/// </summary> 
		public string FromName 
		{ 
			get 
			{ 
				return this._fromName; 
			} 
			set 
			{ 
				this._fromName = value; 
			} 
		} 

		/// <summary> 
		/// 收件人姓名 
		/// </summary> 
		public string RecipientName 
		{ 
			get 
			{ 
				return this.Recipient; 
			} 
			set 
			{ 
				this.Recipient = value; 
			} 
		} 

		/// <summary> 
		/// 邮件服务器域名和验证信息 
		/// 形如:"user:pass@www.server.com:25",也可省略次要信息。如"user:pass@www.server.com"或"www.server.com" 
		/// </summary> 
		public string MailDomain 
		{ 
			set 
			{ 
				mailserver=value; 

			} 

				
		} 



		/// <summary> 
		/// 邮件服务器端口号 
		/// </summary> 
		public int MailDomainPort 
		{ 
			set 
			{ 
				mailserverport=value; 
			} 
		} 



		/// <summary> 
		/// SMTP认证时使用的用户名 
		/// </summary> 
		public string MailServerUserName 
		{ 
			set 
			{ 
				if(value.Trim()!="") 
				{ 
					username=value.Trim(); 
					ESmtp=true; 
				} 
				else 
				{ 
					username=""; 
					ESmtp=false; 
				} 
			} 
		} 

		/// <summary> 
		/// SMTP认证时使用的密码 
		/// </summary> 
		public string MailServerPassWord 
		{ 
			set 
			{ 
				password=value; 
			} 
		} 

		/// <summary> 
		/// 邮件发送优先级,可设置为"High","Normal","Low"或"1","3","5" 
		/// </summary> 
		public string Priority 
		{ 
			set 
			{ 
				switch(value.ToLower()) 
				{ 
					case "high": 
						priority="High"; 
						break; 

					case "1": 
						priority="High"; 
						break; 

					case "normal": 
						priority="Normal"; 
						break; 

					case "3": 
						priority="Normal"; 
						break; 

					case "low": 
						priority="Low"; 
						break; 

					case "5": 
						priority="Low"; 
						break; 

					default: 
						priority="Normal"; 
						break; 
				} 
			} 
		} 

		/// <summary> 
		/// 是否Html邮件 
		/// </summary> 
		public bool Html 
		{ 
			get 
			{ 
				return this._html; 
			} 
			set 
			{ 
				this._html = value; 
			} 
		} 


		/// <summary> 
		/// 错误消息反馈 
		/// </summary> 
		public string ErrorMessage 
		{ 
			get 
			{ 
				return errmsg; 
			} 
		} 
	

		public bool eSmtp
		{
			get
			{
				return this.ESmtp;
			}
			set
			{
				this.ESmtp =value;
			}
		}
			


		/// <summary> 
		/// 添加邮件附件 
		/// </summary> 
		/// <param name="FilePath">附件绝对路径</param> 
		public void AddAttachment(params string[] FilePath) 
		{ 
			try
			{
				if(FilePath==null) 
				{ 
					throw(new ArgumentNullException("FilePath")); 
				} 
				for(int i=0;i<FilePath.Length;i++) 
				{ 
					Attachments.Add(FilePath[i]); 
				} 
			}
			catch(Exception ex)
			{
				MessageBox.Show (ex.ToString ());
			}
		} 



		/// <summary> 
		/// 得到上传附件的文件流 
		/// </summary> 
		/// <param name="FilePath">附件的绝对路径</param> 
		private string GetStream(string FilePath) 
		{ 
			try
			{
				//建立文件流对象 
				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)); 
			}
			catch
			{
				MessageBox.Show ("可能你要打开的文件的属性是只读的!","请检查权限");
				return null;
			}
		} 


		/// <summary> 
		/// 发送邮件方法,所有参数均通过属性设置。 
		/// </summary> 
		public bool Send() 
		{ 
			if(mailserver.Trim()=="") 
			{ 
				MessageBox.Show ("必须指定SMTP服务器"); 
				return false;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -