pop3收邮件问题!

睡神在睡觉 2009-05-12 03:49:37
附上代码,在验证用户名和密码的时候密码验证总是返回错误,请教该怎么改?
    private void Connect()
{
TcpClient sender = new TcpClient(POPServer, 110);
Byte[] outbytes;
string input;
string readuser = string.Empty;
string readpwd = string.Empty;
try
{
ns = sender.GetStream();
sr = new StreamReader(ns);
sr.ReadLine();
//检查密码
input = "USER " + user + "\r\n";
outbytes = System.Text.Encoding.ASCII.GetBytes(input.ToCharArray());
ns.Write(outbytes, 0, outbytes.Length);
readuser = sr.ReadLine();

Array.Clear(outbytes, 0, outbytes.Length);
input = "PASS " + pwd + "\r\n";
outbytes = System.Text.Encoding.ASCII.GetBytes(input.ToCharArray());
ns.Write(outbytes, 0, outbytes.Length);
readpwd = sr.ReadLine(); //Console.WriteLine(sr.ReadLine() );

}
catch
{
System.Windows.Forms.MessageBox.Show("用户名或密码错误");
}
}


在红色字体地方运行超慢,一会就返回错误,求解!
...全文
215 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
睡神在睡觉 2009-05-21
  • 打赏
  • 举报
回复
自己搞定了,就是pop/smtp服务的问题~散分
睡神在睡觉 2009-05-13
  • 打赏
  • 举报
回复
密码对的,用这个密码在网页上就可以登陆上去的啊
meheartfly 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Sysping1 的回复:]
POPServer无效,一般!
[/Quote]
赞同!
liudanking 2009-05-13
  • 打赏
  • 举报
回复
。net自己的pop3不是很好用
你可以用这个——
参考
whj3102 2009-05-13
  • 打赏
  • 举报
回复
我的163邮箱比较早
我现在通过pop3.163.com+110是可以监控邮箱的
要不你先再试下pop3.sina.com.cn+110
如果还不中的话,可以试试
private void test(string sn,string sp,string un, string pw)
{
tcpClient = new TcpClient();
try
{
tcpClient.Connect(sn,Convert.ToInt32(sp,10));
}
catch
{
Response.Write("不能连接主机:"+sn+"和端口"+sp);
return;
//throw new Exception("不能连接主机:"+sn+"和端口"+sp);
}

//从邮件服务器获得相应
netStream = tcpClient.GetStream();

if(netStream == null)
{
tcpClient.Close();
return;
}
string returnMsg=ReadFromNetStream(ref netStream);
bool isOK=checkForError(returnMsg);

//发送用户名信息

WriteToNetStream(ref netStream, "USER "+un);
returnMsg=ReadFromNetStream(ref netStream);
if(!(isOK=checkForError(returnMsg)))
{
netStream.Close();
tcpClient.Close();
Response.Write("不存在该用户名!");
}
else
{

//发送密码信息

WriteToNetStream(ref netStream, "PASS "+pw);
returnMsg=ReadFromNetStream(ref netStream);
netStream.Close();
tcpClient.Close();
if(!(isOK=checkForError(returnMsg)))
{
Response.Write("密码错误!");
}
else Response.Write("测试连接成功!");
}
}

/// <summary>
/// 这个函数用来向网络流写入数据
/// </summary>
/// <param name="NetStream"></param>
/// <param name="Command"></param>

private void WriteToNetStream(ref NetworkStream NetStream, string Command)
{
string stringToSend = Command +"\r\n";
Byte[] arrayToSend = Encoding.ASCII.GetBytes(stringToSend.ToCharArray());
NetStream.Write(arrayToSend, 0, arrayToSend.Length);
}

/// <summary>
/// 这个函数用来从网络流中读取数据
/// </summary>
/// <param name="NetStream"></param>
/// <returns></returns>
private String ReadFromNetStream(ref NetworkStream netStream)
{
StringBuilder strReceived= new StringBuilder();
StreamReader sr= new StreamReader(netStream);
String strLine =sr.ReadLine();
while(strLine==null || strLine.Length==0)
{
strLine = sr.ReadLine();
}
strReceived.Append(strLine);

/*if(sr.Peek()!=-1)
{
while ((strLine=sr.ReadLine())!=null)
{
strReceived.Append(strLine);
Response.Write("<script> alert('"+strReceived.ToString()+"');</script>");
}
}*/
return strReceived.ToString();
}

/// <summary>
/// 这个函数用来检测网络流中的错误
/// </summary>
/// <param name="strMessage"></param>
private bool checkForError(String strMessage)
{
if (strMessage.IndexOf("OK") == -1) return false;
return true;
//throw new Exception("ERROR - . Recieved: "+ strMessage);
}
Hassle 2009-05-13
  • 打赏
  • 举报
回复
亲爱的用户朋友:

自2006年11月16日起,网易免费邮件系统的POP3及SMTP服务将暂停开通,此前已经开通POP3及SMTP服务的邮箱帐号则不受影响,仍然可以正常使用。

对此如有任何疑问, 请通过网易在线客服提交你的问题。

网易邮件中心
2006年11月15日
睡神在睡觉 2009-05-13
  • 打赏
  • 举报
回复
自己顶上去,求解
whj3102 2009-05-12
  • 打赏
  • 举报
回复
密码错误
睡神在睡觉 2009-05-12
  • 打赏
  • 举报
回复
try
{
tcpClient.Connect(sn,Convert.ToInt32(sp,10));
}
catch
{
Response.Write("不能连接主机:"+sn+"和端口"+sp);
return;
}


这么些也是一个效果,到验证完密码的是偶还是返回-ERR,验证用户名的时候是返回+OK,应该不是服务器的问题吧?
whj3102 2009-05-12
  • 打赏
  • 举报
回复
tcpClient = new TcpClient();
try
{
tcpClient.Connect(sn,Convert.ToInt32(sp,10));
}
catch
{
Response.Write("不能连接主机:"+sn+"和端口"+sp);
return;
}
你这样试试

163是pop3.163.com,110
可以用pop3来测试连接,如果是接收邮件,使用pop3协议需要base64转码,请考虑使用jmail或别的组件
睡神在睡觉 2009-05-12
  • 打赏
  • 举报
回复
POPServer值是pop.163.com 无效应该出异常了吧?
蓝海D鱼 2009-05-12
  • 打赏
  • 举报
回复
up
Sysping1 2009-05-12
  • 打赏
  • 举报
回复
POPServer无效,一般!
睡神在睡觉 2009-05-12
  • 打赏
  • 举报
回复
没人帮下么?自己顶下

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧