システムの使用。
System.textを使用しています。
System.ioを使用しています。
System.netを使用しています。
system.net.socketsを使用します。
名前空間blood.com.classlib
{
/// <summary>
/// tcpclient
/// </summary>
パブリッククラスSMTPCLIENT:TCPCLIENT
{
public bool isconnected()
{
アクティブを返します。
}
public void sendcommandtoserver(stringコマンド)
{
networkstream ns = this.getStream();
byte [] writebuffer;
writebuffer = new byte [1024];
writebuffer = encoding.default.getBytes(command);
ns.write(writebuffer、0、writebuffer.length);
戻る;
}
public string getServerResponse()
{
int streamsize;
文字列returnValue =;
byte [] readbuffer;
networkstream ns = this.getStream();
readbuffer = new Byte [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)?false:true;
}
} //结束类
/// <summary>
///发送邮件类
/// </summary>
パブリッククラスSMTPMail
{
/// <summary>
///错误反馈信息
/// </summary>
プライベートストリングstrerrmessage = null;
/// <summary>
/// SMTP服务器反馈的信息
/// </summary>
プライベート文字列stresponse;
/// <summary>
///构造函数
/// </summary>
public smtpmail()
{
strerrmessage =;
stresponse =;
}
/// <summary>
///取得错误反馈信息
/// </summary>
パブリック文字列の誤差
{
得る
{
strerrmessageを返します。
}
}
/// <summary>
///
/// </summary>
public string serverResponse
{
得る
{
stresponseを返します。
}
}
/// <summary>
///邮件发送优先级
/// </summary>
パブリックエインムの優先順位
{
/// <summary>
///最高级别
/// </summary>
high = 1、
/// <summary>
///默认级别
/// </summary>
通常= 3、
/// <summary>
///最低级别
/// </summary>
低= 5
}
public void sendmail(string smtphost、int port、string from、string displayfromname、string to、string displaytoname、prioritys priority、bool html、string base、string subject、stringメッセージ)
{
試す
{
文字列stresponseNumber;
smtpclient smtpcmail = new SmtpClient();
smtpcmail.connect(smtphost、port);
bool bolconnect = smtpcmail.isconnected();
//判断是否进行了连接
if(!bolconnect)
{
strerrmessage = smtp服务器连接失败...;
戻る;
}
//读取反馈信息
stresponsenumber = smtpcmail.getServerResponse();
if(smtpcmail.doesstringcontainsmtpcode(stresponseNumber、220)))
{
this.strresponse += stresponseNumber;
}
それ以外
{
this.strerrmessage =连接失败 + stresponseNumber;
戻る ;
}
string [] strsendbuffer = new String [6];
string [] stresponsecode = {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(mail from:、< + from +>);
strdata = string.concat(strdata、/r/n);
strsendbuffer [1] = strdata;
strdata =;
strdata = string.concat(rcpt to:、< + to +>);
strdata = string.concat(strdata、/r/n);
strsendbuffer [2] = strdata;
strdata =;
strdata = string.concat(data、/r/n);
strsendbuffer [3] = strdata;
strdata =;
strdata = string.concat(from:、displayfromname + < + from +>);
strdata = string.concat(strdata、/r/n);
strdata = string.concat(strdata、to:);
strdata = string.concat(strdata、displaytoname + < + to +>);
strdata = string.concat(strdata、/r/n);
strdata = string.concat(strdata、subject:);
strdata = string.concat(strdata、subject);
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: + priority);
strdata = string.concat(strdata、/r/n);
strdata = string.concat(strdata、x-msmail-priority: + priority);
strdata = string.concat(strdata、/r/n);
if(html == true)
{
strdata = string.concat(strdata、content-type:text/html;);
}
それ以外
{
strdata = string.concat(strdata、content-type:text/plain;);
}
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、content-transfer-encoding:text/html;);
}
それ以外
{
strdata = string.concat(strdata、content-transfer-encoding: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、message);
strdata = string.concat(strdata、/r/n。/r/n);
strsendbuffer [4] = strdata;
strdata =;
strdata = string.concat(strdata、quit/r/n);
strsendbuffer [5] = strdata;
int i = 0;
while(i <strsendbuffer.length)
{
smtpcmail.sendcommandtoserver(strsendbuffer [i]);
stresponsenumber = smtpcmail.getServerResponse();
for(int j = 0; j <stresponsecode.length; j ++)
{
if(smtpcmail.doesstringcontainsmtpcode(stresponsenumber、stresponsecode [j]))
{
this.strresponse += stresponseNumber;
this.strresponse += <br>;
壊す;
}
それ以外
{
if(j == stresponsecode.length-1)
{
this.strerrmessage += stresponseNumber;
this.strermessage += strsendbuffer [i];
戻る;
}
}
}
i ++;
} //结束循环
}
catch(socketexception err)
{
this.strermessage + = err.message + + err.stacktrace;
}
キャッチ(例外e)
{
this.strermessage + = e.message + + e.stacktrace;
}
} //结束邮件发送方法
} //结束类
} //结束ネームスペース