pop3实现邮箱登录.....急 急 急

zhangzhen900530 2011-11-28 03:42:18
很简单,就想用pop3登录下邮箱,只是为了验证邮箱的账号 密码是否正确......
...全文
251 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿非 2011-11-29
  • 打赏
  • 举报
回复
很简单个判断, 怎么就能改成这样 strResponse.Substring(0, index).ToUpper().Trim();


看看address 的值
zhangzhen900530 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sandy945 的回复:]

引用 6 楼 zhangzhen900530 的回复:
引用 5 楼 sandy945 的回复:

http://blog.csdn.net/sandy945/article/details/7020774

不行,这个到第二个reader.ReadLine()的时候会报“由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值”


超时? 你怎么写的
[/Quote]
public class checking : IHttpHandler
{
NetworkStream netstream;
StreamReader reader;
byte[] chardata;
string json = string.Empty;

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";

string address = context.Request["address"];
string email = context.Request["name"];
string pass = context.Request["pass"];

TcpClient tcp = new TcpClient(address, 110);

netstream = tcp.GetStream();
reader = new StreamReader(tcp.GetStream());

if (IsOkResponse(reader.ReadLine(), 3)) //验证邮箱服务地址
{
chardata = Encoding.ASCII.GetBytes("USER " + email);
netstream.Write(chardata, 0, chardata.Length);
if (IsOkResponse(reader.ReadLine(), 3))
{
chardata = Encoding.ASCII.GetBytes("PASS " + pass);
netstream.Write(chardata, 0, chardata.Length);

if (IsOkResponse(reader.ReadLine(), 3))
{
json = "{\"verify\":\"true\"}";
context.Response.Write(json);
return;
}
else
{
json = "{\"verify\":\"false\"}";
context.Response.Write(json);
return;
}
}
else
{
json = "{\"verify\":\"false\"}";
context.Response.Write(json);
return;
}
}
else
{
json = "{\"verify\":\"false\"}";
context.Response.Write(json);
return;
}
}
private bool IsOkResponse(string strResponse, int index)
{
bool result = true;
string str = strResponse.Substring(0, index).ToUpper().Trim();
if (str == "+OK")
{
result = true;
}
else if (str == "-ER")
{
result = false;
}
else if (str == "-ERR")
{
result = false;
}
return result;
}
public bool IsReusable
{
get
{
return IsReusable;
}
}
我是用的ashx 页面,因为要无刷新验证
阿非 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhangzhen900530 的回复:]
引用 5 楼 sandy945 的回复:

http://blog.csdn.net/sandy945/article/details/7020774

不行,这个到第二个reader.ReadLine()的时候会报“由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值”
[/Quote]

超时? 你怎么写的
孟子E章 2011-11-29
  • 打赏
  • 举报
回复
你可以参考pop3协议实现
http://www.codeproject.com/KB/IP/popapp.aspx
OpenPop.NET
http://sourceforge.net/projects/hpop/
zhangzhen900530 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 livemusic 的回复:]

引用楼主 zhangzhen900530 的回复:
只是为了验证邮箱的账号 密码是否正确......
MAIL.XXXX.XXX web这样验证跟快速哈
[/Quote]
不是很明白啊?
zhangzhen900530 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sandy945 的回复:]

http://blog.csdn.net/sandy945/article/details/7020774
[/Quote]
不行,这个到第二个reader.ReadLine()的时候会报“由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值
zhangzhen900530 2011-11-28
  • 打赏
  • 举报
回复
我要代码实现这个判断,因为我可以多个用户登录,所以用户的邮箱服务地址、用户名、密码存在gridvi里,在循环登录中间我不希望他们出错,所以没添加一个用户,我都要先登录下,判断是否是正确的账户
-晴天 2011-11-28
  • 打赏
  • 举报
回复
只是登录?
看看这个是否对你有用:
http://www.chinaemail.com.cn/service/khd/foxmail/201107/64963.html
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhangzhen900530 的回复:]
只是为了验证邮箱的账号 密码是否正确......
[/Quote]MAIL.XXXX.XXX web这样验证跟快速哈

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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