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

📄 sendmail.cs

📁 C#电子邮件的传送
💻 CS
字号:
using System; 
using System.Net.Sockets;//用于处理网络连接 
using System.IO; //用于处理附件的包 
using System.Text;//用于处理文本编码 


namespace QSendMail
{
	/// <summary>
	/// SendMail 的摘要说明。
	/// </summary>
	public class SendMail
	{
		public SendMail()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
			
			
		}

		/// <summary>
		/// SMTP服务器域名 
		/// </summary>
		private String server;//SMTP服务器域名 
		private String subject;//主题 
		private String body;//文本内容 
		private String from;//发件人地址 
		private String to;//收件人地址 
		
		private String errMsg;
		public string MAILserver
		{
			get
			{
				return this.server;
			}
			set
			{
				this.server=value;
			}
		}
		/// <summary>
		/// 主题
		/// </summary>
		public string MAILsubject
		{
			get
			{
				return this.subject;
			}
			set
			{
				this.subject=value;
			}
		}

		/// <summary>
		/// 文本内容
		/// </summary>
		public  string MAILbody
		{
			get
			{
				return this.body;
			}
			set
			{
				this.body=value;
			}
		}
		/// <summary>
		/// 发件人地址
		/// </summary>
		public string MAILfrom
		{
			get
			{
				return this.from;
			}
			set
			{
				this.from=value;
			}
		}

		/// <summary>
		/// 收件人地址
		/// </summary>
		public string MAILto
		{
			get
			{
				return this.to;
			}
			set
			{
				this.to=value;
			}
		}
		public bool Send()
		{
			string Data;
			byte[] szData;
			string CRLF = "\r\n";

			//与邮件服务器建立连接
			TcpClient SmtpServ = new TcpClient(server,25);		
			if(SmtpServ==null)
				return false;
			NetworkStream NetStrm = SmtpServ.GetStream();
			StreamReader RdStrm= new StreamReader(SmtpServ.GetStream());
			if(RdStrm==null)
				return false;
			errMsg=RdStrm.ReadLine();

			//开始与邮件服务器会话
			Data = "HELO "+from + CRLF; 
			szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
			NetStrm.Write(szData,0,szData.Length);
			errMsg=RdStrm.ReadLine();

			//告诉邮件服务器发件人的地址
			Data = "MAIL FROM: " + "<" + from + ">" + CRLF;
			szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
			NetStrm.Write(szData,0,szData.Length);
			errMsg=RdStrm.ReadLine();

			//告诉邮件服务器收件人的地址
			Data = "RCPT TO: " + "<" + to + ">" + CRLF;
			szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
			NetStrm.Write(szData,0,szData.Length);
			errMsg=RdStrm.ReadLine();

			//开始发送数据
			Data = "DATA " + CRLF;
			szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
			NetStrm.Write(szData,0,szData.Length);
			errMsg=RdStrm.ReadLine();
 
			//发送主题
			Data = "SUBJECT: " + subject + CRLF ;
			Data = "X-mailer: Foxmail 4.2 [cn]"+CRLF ;
			Data = "Mime-Version: 1.0"+CRLF ;
			Data = "Content-Type: text/plain"+CRLF ;
			Data = "charset: GB2312"+CRLF ;
			Data = "Content-Transfer-Encoding: quoted-printable"+CRLF ;
			Data = "Date: "+DateTime.Now+CRLF ;

			//发送内容
			Data = Data+ body + CRLF ;
			//结束发送
			Data = Data+ "." + CRLF;
			szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
			NetStrm.Write(szData,0,szData.Length);
			errMsg=RdStrm.ReadLine(); 

			//与邮件服务器断开连接
			Data = "QUIT " + CRLF;
			szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
			NetStrm.Write(szData,0,szData.Length);
			errMsg=RdStrm.ReadLine(); 
			//关闭连接
			NetStrm.Close();
			RdStrm.Close();
			errMsg="发送成功";
			return true;
		}

	}
}

⌨️ 快捷键说明

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