ใช้ระบบ
ใช้ System.Text;
ใช้ system.io;
ใช้ System.net;
ใช้ System.net.sockets;
Namespace Blood.com.classlib
-
/// <summary>
/// TCPClient 派生类, 用来进行 SMTP 服务器的连接工作
/// </summary>
SMTPClient ระดับสาธารณะ: TCPClient
-
public bool isconnected ()
-
return active;
-
โมฆะสาธารณะ SendCommandToserver (คำสั่งสตริง)
-
NetworkStream ns = this.getStream ();
ไบต์ [] writebuffer;
writebuffer = ไบต์ใหม่ [1024];
writebuffer = encoding.default.getBytes (คำสั่ง);
ns.write (writebuffer, 0, writebuffer.length);
กลับ;
-
Public String GetServerResponse ()
-
Int Streamsize;
สตริง returnValue =;
Byte [] ReadBuffer;
NetworkStream ns = this.getStream ();
readBuffer = ไบต์ใหม่ [1024];
streamsize = ns.read (readbuffer, 0, readbuffer.length);
if (streamsize == 0)
-
returnValue;
-
อื่น
-
returnValue = encoding.default.getString (ReadBuffer);
returnreturnvalue;
-
-
Public Bool DoessTringContainSMTPCODE (String S, String SMTPCODE)
-
return (s.indexof (smtpcode, 0,10) ==-1)? เท็จ: จริง;
-
} // 结束类
/// <summary>
/// 发送邮件类
/// </summary>
smtpmail ชั้นเรียนสาธารณะ
-
/// <summary>
/// 错误反馈信息
/// </summary>
สตริงส่วนตัว strerrMessage = null;
/// <summary>
/// smtp 服务器反馈的信息
/// </summary>
สตริงส่วนตัว strresponse;
/// <summary>
/// 构造函数
/// </summary>
SMTPMAIL สาธารณะ ()
-
strerrMessage =;
strresponse =;
-
/// <summary>
/// 取得错误反馈信息
/// </summary>
สตริงสาธารณะ errormessage
-
รับ
-
กลับ strerrmessage;
-
-
/// <summary>
/// 取得 smtp 服务器反馈的信息
/// </summary>
ServerResponse สตริงสาธารณะ
-
รับ
-
กลับ strresponse;
-
-
/// <summary>
/// 邮件发送优先级
/// </summary>
ลำดับความสำคัญของ enum สาธารณะ
-
/// <summary>
/// 最高级别
/// </summary>
สูง = 1,
/// <summary>
/// 默认级别
/// </summary>
ปกติ = 3,
/// <summary>
/// 最低级别
/// </summary>
ต่ำ = 5
-
โมฆะสาธารณะ sendmail (สตริง smtphost, int พอร์ต, สตริงจาก, สตริง displayfromname, สตริงไป, สตริง displaytoname, ลำดับความสำคัญลำดับความสำคัญ, bool html, ฐานสตริง, สตริงหัวเรื่อง, ข้อความสตริง)
-
พยายาม
-
สตริง strresponsenumber;
smtpClient smtpcmail = new smtpClient ();
smtpcmail.connect (smtphost, พอร์ต);
bolconnect = smtpcmail.isconnected ();
// 判断是否进行了连接
if (! bolconnect)
-
strerrMessage = smtp 服务器连接失败 ... ;
กลับ;
-
// 读取反馈信息
stresponsenumber = smtpcmail.getServerResponse ();
if (smtpcmail.doesstringContainsmtpCode (strresponsenumber, 220)))
-
this.strresponse += stresponsenumber;
-
อื่น
-
this.strerrMessage = 连接失败 + stresponsenumber;
กลับ ;
-
สตริง [] strsendBuffer = สตริงใหม่ [6];
String [] strresponsecode = {220,250,251,354,221}; // รหัสความสำเร็จจากเซิร์ฟเวอร์ SMTP
สตริง strdata =;
strdata = string.concat (helo, smtphost);
strdata = string.concat (strdata,/r/n);
strsendbuffer [0] = strdata;
strdata =;
strdata = string.concat (จดหมายจาก:, < + จาก +>);
strdata = string.concat (strdata,/r/n);
strsendbuffer [1] = strdata;
strdata =;
strdata = string.concat (rcpt ถึง :, < + ถึง +>);
strdata = string.concat (strdata,/r/n);
strsendbuffer [2] = strdata;
strdata =;
strdata = string.concat (ข้อมูล,/r/n);
strsendbuffer [3] = strdata;
strdata =;
strdata = string.concat (จาก:, displayfromname + < + จาก +>);
strdata = string.concat (strdata,/r/n);
strdata = string.concat (strdata, ถึง :);
strdata = string.concat (strdata, displaytoname + < + ถึง +>);
strdata = string.concat (strdata,/r/n);
strdata = string.concat (strdata, หัวเรื่อง :);
strdata = string.concat (strdata, หัวเรื่อง);
strdata = string.concat (strdata,/r/n);
strdata = string.concat (strdata, mime-version: 1.0);
strdata = string.concat (strdata,/r/n);
strdata = string.concat (strdata, x-priority: + ลำดับความสำคัญ);
strdata = string.concat (strdata,/r/n);
strdata = string.concat (strdata, X-MSMAL-PRIORITY: + ลำดับความสำคัญ);
strdata = string.concat (strdata,/r/n);
if (html == true)
-
strdata = string.concat (strdata, ประเภทเนื้อหา: ข้อความ/html;);
-
อื่น
-
strdata = string.concat (strdata, ประเภทเนื้อหา: ข้อความ/ธรรมดา;);
-
strdata = string.concat (strdata,/r/n);
strdata = string.concat (strdata, charset =/ iso-8859-1/);
strdata = string.concat (strdata,/r/n);
if (html == true)
-
strdata = string.concat (strdata, เนื้อหาการถ่ายโอนการเข้ารหัส: ข้อความ/html;);
-
อื่น
-
strdata = string.concat (strdata, เนื้อหาการถ่ายโอนการเข้ารหัส: text/plain;);
-
strdata = string.concat (strdata,/r/n);
strdata = string.concat (strdata, content-base: / + base + /);
strdata = string.concat (strdata,/r/n +/r/n);
strdata = string.concat (strdata, ข้อความ);
strdata = string.concat (strdata,/r/n./r/n);
strsendbuffer [4] = strdata;
strdata =;
strdata = string.concat (strdata, เลิก/r/n);
strsendbuffer [5] = strdata;
int i = 0;
ในขณะที่ (i <strsendbuffer.length)
-
smtpcmail.sendCommandToserver (strsendbuffer [i]);
stresponsenumber = smtpcmail.getServerResponse ();
สำหรับ (int j = 0; j <strresponsecode.length; j ++)
-
if (smtpcmail.doesstringContainsmtpCode (stresponsenumber, strresponsecode [j]))))))))))))
-
this.strresponse += stresponsenumber;
this.strresponse += <br>;
หยุดพัก;
-
อื่น
-
if (j == strresponsecode.length-1)
-
this.strerrMessage += stresponsenumber;
this.strerrmessage += strsendbuffer [i];
กลับ;
-
-
-
i ++;
} // 结束循环
-
จับ (SocketException Err)
-
this.strerrMessage + = err.message + + err.stacktrace;
-
จับ (ข้อยกเว้น e)
-
this.strerrMessage + = e.message + + e.stacktrace;
-
} // 结束邮件发送方法
} // 结束类
} // 结束เนมสเปซ