社区
通信技术
帖子详情
在OutLook中收取POP3的邮件时,RETR命令以什么作为结束符
kittywu
2004-06-11 11:27:10
本人在做一个SMTP,POP3的服务器时,用FoxMail收发均没问题,但是用OutLook Express 收取邮件时,收到RETR 命令时,却一直在等待服务器回应,我看了一下,应该是服务器对RETR命令返回的字符串没有结束符(有\r\n.\r\n),是不是OutLook用另外的字符作为RETR响应的结束符??
...全文
406
3
打赏
收藏
在OutLook中收取POP3的邮件时,RETR命令以什么作为结束符
本人在做一个SMTP,POP3的服务器时,用FoxMail收发均没问题,但是用OutLook Express 收取邮件时,收到RETR 命令时,却一直在等待服务器回应,我看了一下,应该是服务器对RETR命令返回的字符串没有结束符(有\r\n.\r\n),是不是OutLook用另外的字符作为RETR响应的结束符??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xhzxlqt
2004-06-12
打赏
举报
回复
你说的问题我最初也遇到过,已经解决,现将POP3的代码贴上来:
if(rectxt.SubString(1,4).UpperCase()=="RETR")
{
if(ipop3status<2)
{
sendtxt="-ERR authentication required.\r\n";
try
{
pStream->WriteBuffer(sendtxt.c_str(),sendtxt.Length());
}
catch(...)
{
Terminate();
}
}
else
{
sPara=rectxt.SubString(6,rectxt.Length()-7);
int no=StrToInt(sPara)-iDeleted;
TSearchRec sr;
int iAttributes = 0;
iAttributes |= faAnyFile;
int messagenumber=0;
long messagebyte=0;
FILE *popfp;
int lfilelen,ifread;
AnsiString str,str1;
if (FindFirst(mailpath+Domain+"\\"+Name+"\\*.mal", iAttributes, sr) == 0)
{
do
{
if (sr.Name.SubString(1,1)!=".")
{
messagenumber++;
if(messagenumber==no)
{
int ifilesize=sr.Size;
sPOPFilename=mailpath+Domain+"\\"+Name+"\\"+sr.Name;
popfp=fopen((mailpath+Domain+"\\"+Name+"\\"+sr.Name).c_str(),"rt");
if(popfp)
{
sendtxt="+OK "+IntToStr(sr.Size)+" octets\r\n";
try
{
pStream->WriteBuffer(sendtxt.c_str(),sendtxt.Length());
}
catch(...)
{
Terminate();
}
// while(!feof(popfp))
while(ifilesize)
{
// fgets(ch,513,popfp);
char ch[513];
ZeroMemory(ch,513);
if(ifilesize<=513)
{
fread((char*)ch,ifilesize,1,popfp);
str=AnsiString(ch).SubString(1,ifilesize);
ifilesize=0;
}
if(ifilesize>513)
{
fread((char*)ch,513,1,popfp);
str=AnsiString(ch).SubString(1,513);
ifilesize-=513;
}
str1=str;
if((str.SubString(str.Length()-1,1)=="=")&&(str.SubString(str.Length()-2,1)!="?"))
{
str1=str.SubString(1,str.Length()-2);
}
sendtxt=str1;
try
{
pStream->WriteBuffer(sendtxt.c_str(),sendtxt.Length());
}
catch(...)
{
Terminate();
}
}
sendtxt="\r\n.\r\n";
try
{
pStream->WriteBuffer(sendtxt.c_str(),sendtxt.Length());
}
catch(...)
{
Terminate();
}
if(popfp)
fclose(popfp);
break;
}
}
}
} while (FindNext(sr) == 0);
FindClose(sr);
}
}
}
kittywu
2004-06-12
打赏
举报
回复
“当你将邮件内容发送完成后,再发送一个"\r\n.\r\n";在FoxMail和OutLook Express中我都试过,没有问题”
你说的方法我试过了,在FoxMail中可以通过,但不知为何,OutLook Express一直在等待接收数据,而不结束,很奇怪的?
我昨晚就在想这个问题,我想应该可以通过自身的SMTP服务器发到另外的服务器上,如果解决了,给你email!
xhzxlqt
2004-06-11
打赏
举报
回复
当你将邮件内容发送完成后,再发送一个"\r\n.\r\n";
在FoxMail和OutLook Express中我都试过,没有问题.
我也在搞这个东西.
我也有一个问题不知楼主是否能帮我解决:邮件服务器如何与别的邮件服务器交换邮件?比如说用"xyz@112.com"发送到"abc@223.com" ,112.com上的邮件服务器如何将本地的这封邮件发送到223.com上的邮件服务器?(可不要建议到223.com上去申请一个免费邮箱)
这个问题我想你早晚也会遇到,如果已经(或以后)解决请告诉我如何解决(xhzxlqt@163.com,xhzxlqt@126.com)
谢谢!
POP3
邮件
接收协议
命令
使用详解
第1章
POP3
概述
POP3
全称为Post Office Protocol version3,即邮局协议第3版。它被用户代理用来
邮件
服务器取得
邮件
。
POP3
采用的也是C/S通信模型,对应的RFC文档为RFC1939。该协议非常简单,所以我们只重点介绍其通信过程,而相关的一些概念和术语请参考RFC文档或另外一篇文章《SMTP协议分析》 第2章.
POP3
详解 2.1通信过程
PHP实现
pop3
,用PHP实现
POP3
邮件
的
收取
(二)
用php实现
POP3
收取
邮件
的类现在让我们来用PHP实现一个通过
POP3
协议
收取
信件的类吧,这个类
中
所用到的一些sock操作的函数,不另做特殊说明,请参考php的有关资料。通过这个实例,相信你也会和我一样,感觉到PHP
中
对于sock操作的灵活、方便和功能的强大。首先,我们来说明一下这个类
中
需要用到的一些内部成员变量:(这些变量应该都是对外封闭的,可是由于php对类的成员变量没有PRivate与pu...
POP3
协议:电子
邮件
接收的关键技术与应用解析
POP3
协议作为电子
邮件
接收领域的重要协议,在其发展历程
中
经历了从简单到复杂、从满足基本需求到应对多样化挑战的过程。它在不同的应用场景
中
,无论是个人、企业还是特殊行业和环境,都发挥着重要的作用。然而,随着网络技术的不断发展,
POP3
协议也面临着安全、性能、与新兴技术融合以及兼容性等多方面的挑战。
POP3
协议详解
POP3
是一种用于从
邮件
服务器获取电子
邮件
的协议。它允许
邮件
客户端连接到
邮件
服务器,检索服务器上存储的
邮件
,并将
邮件
下载到客户端设备上。
邮件
服务器之
POP3
协议分析
第1章.
POP3
概述
POP3
全称为Post Office Protocol version3,即邮局协议第3版。它被用户代理用来
邮件
服务器取得
邮件
。
POP3
采用的也是C/S通信 模型,对应的RFC文 档为RFC1939。 该协议非常简单,所以我们只重点介绍其通信过程,而相关的一些概念和术语请参考RFC文档或另外一篇文章《SMTP协议分析》 第2章.
POP3
详解 ...
通信技术
4,387
社区成员
28,918
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章