那位高手用C#写过SMTP,POP3 两个协议上对邮件的发送和接受的相关程序?请指点!
要求是:
1,SMTP 用普通用户名和密码实现邮件的发送。
如:在163上申请一个免费信箱,用户名:smtp163test,密码:123321
2,POP3 用普通用户名和密码实现邮件的接受。
如:在163上申请一个免费信箱,用户名:smtp163test,密码:123321
3,无论是邮件的发送和接受都要支持中文和附件!
[
注:SMTP下如果不能实现普通用户名和密码的认证也行,
但是POP3下必须是普通用户名密码行通的。
]
要求是:
1,SMTP 用普通用户名和密码实现邮件的发送。
如:在163上申请一个免费信箱,用户名:smtp163test,密码:123321
2,POP3 用普通用户名和密码实现邮件的接受。
如:在163上申请一个免费信箱,用户名:smtp163test,密码:123321
3,无论是邮件的发送和接受都要支持中文和附件!
[
注:SMTP下如果不能实现普通用户名和密码的认证也行,
但是POP3下必须是普通用户名密码行通的。
]
gmail(google.com)
POP3服务器地址:pop.gmail.com
SMTP服务器地址:smtp.gmail.com C) 21cn.com
POP3服务器地址:pop.21cn.com
SMTP服务器地址:smtp.21cn.com sina.comsina.com
POP3服务器地址:pop3.sina.com.cn
SMTP服务器地址:smtp.sina.com.cn tom.com
POP3服务器地址:pop.tom.com
SMTP服务器地址:smtp.tom.com163.com
POP3服务器地址:pop.163.com
SMTP服务器地址:smtp.163.com263.net
POP3服务器地址:pop3.263.net
SMTP服务器地址:smtp.263.net x263.net
POP3服务器地址:pop.x263.net
SMTP服务器地址:smtp.x263.net263.net.cn
POP3服务器地址:pop.263.net.cn
SMTP服务器地址:smtp.263.net.cnelong.com
POP3服务器地址:pop3.elong.com
SMTP服务器地址:smtp.elong.comchina.com
POP3服务器地址:pop.china.com
SMTP服务器地址:smtp.china.comsohu.com
POP3服务器地址:pop3.sohu.com
SMTP服务器地址:smtp.sohu.cometang.com
POP3服务器地址:pop.etang.com
SMTP服务器地址:smtp.etang.comyahoo.com
POP3服务器地址:pop.mail.yahoo.com
SMTP服务器地址:smtp.mail.yahoo.comyahoo.com.cn
POP3服务器地址:pop.mail.yahoo.com.cn
SMTP服务器地址:smtp.mail.yahoo.com.cn
这两个组件的基本实现的原理有谁能明白啊
老用别人的也不行啊
现在反正有点时间
现在想自己琢磨以下
哪位高手指点下啊?
首先你应该去了解pop、smtp协议的命令
然后去了解用networkstream往网络发送命令和接收
建议去找一本《.net 网络高级编程》的红皮书看看,里面都讲原理及代码。
我现在用 OpenPOP 的时候有一个
POPClient popClient = new POPClient();[1]
......
OpenPOP.MIMEParser.Message m = popClient.GetMessage(i,true);[2]
....
为什么没到[2]的时候长时间不往下进行,
OpenPOP.MIMEParser 这个里面的东西看不懂怎么回事!
System.Net.Mail只找到 smtp 没有 pop
现在在写 smtp的实现
用jmail 也行啊?
我去下 jmail 看看去 这个东西能在C# 下用吗?
怎么听名字象 java 专用啊
用这个jmail 好象还要注册,
就是你的程序做出来了到另外的机器上还要运行以下注册命令 是不是有点麻烦啊
不管是 smtp 还是 pop的 只要能实现 中文+附件 的支持
我会在加分的
[嘿嘿前提是:源码啊]★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
在这些基本的,常用的组件级别的,重用机会比较大的 程序制作方面
希望高手们 赶快作出榜样吧,别让以我为代表的菜鸟们在郁闷N多了!!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★我详细这两个东西写出来肯定要费很多时间,在此先谢过了!
如果源码太长可以发到我信箱里: [email protected]
{ TcpClient mailclient; NetworkStream ns; StreamReader sr; StreamWriter sw; string m_response; //从服务器返回的信息变量 int totmessages; //指明在你的邮箱中有几封 try
{ //连接服务器,其中第一参数代表服务器地址,第二参数代表pop3的端口数 mailclient = new TcpClient(SeverName, 110); } catch
{ Label1.Text = "error";//服务器连接失败 return 2; } ns = mailclient.GetStream();//返回服务器字节流 sr = new StreamReader(ns); sw = new StreamWriter(ns); m_response = sr.ReadLine();//读取服务器字节流字符 //发送用户名给服务器 sw.WriteLine("User " + UserName); sw.Flush(); //验证用户名是否正确 m_response = sr.ReadLine(); if (m_response.Substring(0, 3) == "-ER")
{ Label1.Text = "User error";//用户连接失败 return 2; } //发送密码给服务器 sw.WriteLine("Pass " + Password); sw.Flush(); try
{ //验证密码是否正确 m_response = sr.ReadLine(); } catch (Exception e)
{ Label1.Text = "Password error";//密码连接失败 return 2; } if (m_response.Substring(0, 4) == "-ERR")
{ Label1.Text = m_response+"Password error";//密码错误 return 2; } sw.WriteLine("Stat");//执行pop3权限检查命令 sw.Flush(); m_response = sr.ReadLine(); string[] nummess = m_response.Split(' '); totmessages = Convert.ToInt16(nummess[1]);//获取服务器中有几封信件 if (totmessages > 0)
{ Label1.Text = "you have " + totmessages + " messages"; } else
{ Label1.Text = "you have no messages"; } string N = "1";
string mailtext = "";
Data = "RETR " + N + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
ns.Write(szData, 0, szData.Length); Result = sr.ReadLine();
if (Result[0] != '-')
{
while (Result != ".")
{
mailtext += Result + CRLF;
Result = sr.ReadLine();
}
} Response.Write(mailtext);
return 1; } #endregion
用Jmail
接受到的要一般是乱吗
可以学习下这个开原代码QMailClient
你的代码不包含有附件或乱码解决的处理过程吧?