2008年4月10日 星期四

C# POP3認證

達到用POP3跟mail server 做身分認證

step1.加入下列二個namespace
using System.Net.Sockets;
using System.IO;

setp2.加入Button事件
protected void Button1_Click(object sender, EventArgs e)
{

string user = "username";
string pass = "userpassword";
String POPServer = "mail.XXX.XXX.tw";


TcpClient tcpc = new TcpClient(POPServer, 110);

try
{

Stream s;
StreamReader sr;
String strCmd;
Byte[] arrCmd;
String strRet;
String[] arrRet;

sr = new StreamReader(tcpc.GetStream(), System.Text.Encoding.Default);
sr.ReadLine();

strRet = Logon(tcpc, user, pass);

if (strRet.Substring(0, 3) != "+OK")
{
Response.Write("帳號或密碼不正確!+login faire");
}
else
{
Response.Write("loginOK");
}

}
catch (Exception ex)
{
Response.Write(ex.Message);
}

}

String Logon(TcpClient tcpc, String user,String pass)
{
String strRet;

strRet = SendPopCmd(tcpc, "user " + user);
strRet = SendPopCmd(tcpc, "pass " + pass);
return strRet;
}//end for Logon

String SendPopCmd(TcpClient tcpc,String strCmd)
{

Byte[] arrCmd;
String strRet;
StreamReader sr;
Stream s;

strCmd = strCmd+"\r\n";
arrCmd=System.Text.Encoding.Default.GetBytes(strCmd.ToCharArray());
s = tcpc.GetStream();

s.Write(arrCmd, 0, arrCmd.Length);
sr=new StreamReader(tcpc.GetStream (),System.Text.Encoding.Default);
strRet=sr.ReadLine();
return strRet;

}//end for SendPopCmd

沒有留言: