📄 sendmail.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 + -