免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4176 | 回复: 16
打印 上一主题 下一主题

请教SMTP发邮件时未发DATA而发RSET的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-16 20:47 |只看该作者 |倒序浏览
Win32平台, 采用socket
连接的是smtp.163.com
按照SMTP协议一步一步走下去一直到发送完MAIL FROM / RCPT TO都是成功的
可是再下去发送DATA和邮件内容时, 收发也是正常的, 也接收到DATA命令的返回354
看收发结果也是和协议一致的, 可是却发不到邮箱当中
用sniffer抓包查看发现自DATA命令开始便没有发送任何数据, 而是发了一条RSET命令; 然后到<CRLF>.<CRLF>才有
晕的说

用Outlook / Foxmail 之类的, 发现在相同发送DATA的地方是发了两个RSET, 然后从MAIL FROM / RCPT TO处开始重新发送
最后是成功的, 最后QUIT时接收到的是221
不知如何解释此种情况
还请众位大侠提点下

S: 220 163.com Anti-spam GT for Coremail System (163com[20050206])

S: 250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

C: AUTH LOGIN
S: 334 dXNlcm5hbWU6

C: emp6ZmJAMTYzLmNvbQ==
S: 334 UGFzc3dvcmQ6

C: ******
S: 235 Authentication successful

C: MAIL FROM: <zjzfb@163.com>
S: 250 Mail OK

C: RCPT TO: <zjzfb@163.com>
S: 250 Mail OK

C: DATA
S: 354 Please start mail input.

C: Message-ID: <zjzfb@SC602.com>
C: X-Mailer: <MMail 1.0>
C: MIME-Version: 1.0
C: Content-Type: text/plain
C: Date: Thu, 21 May 1998 05:33:29 -0800
C: From: <zjzfb@163.com>
C: To: <zjzfb@163.com>
C: Subject: Just for Test
Test
C:
.
S: 250 Mail queued for delivery.

C: QUIT
S: 421 closing transmission channel

[ 本帖最后由 zjzfb 于 2007-1-21 21:38 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-01-16 21:18 |只看该作者
写的是平台无关的程序
刚刚在FC6下编译运行
虽然退出时也是421,但是可以发送到目标邮箱

论坛徽章:
0
3 [报告]
发表于 2007-01-16 21:45 |只看该作者
出错不可怕
问题在于在程序中判断,所有的返回均成功有效
因此不知如何解决

机子上有防火墙/杀毒软件

论坛徽章:
0
4 [报告]
发表于 2007-01-17 08:37 |只看该作者
正想写类似的东西....楼主能把源码共享下么?

论坛徽章:
0
5 [报告]
发表于 2007-01-17 13:01 |只看该作者
差不多的问题
我自己建的mail服务器。
我用foxmail正常发一封邮件。可是抓下来的包MAIL FROM 之后就是REST了(明明已经成功发送,而且收到)

论坛徽章:
0
6 [报告]
发表于 2007-01-17 14:11 |只看该作者
很可能是机器上装有有诺顿搞的。
诺顿有个anti_spam的东西。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2007-01-17 17:27 |只看该作者
这不是已经发送成功了吗..250 Mail queued for delivery.
在排队呢..一会你再看..
最好用公司的企业邮箱..不会排队..直接就发送出去了.
我前几天也写了个这种类..也遇到好多问题..

现在一切都OK了..找个源码参考一下..还有抓一个Foxmail的包..仔细研究一下

论坛徽章:
0
8 [报告]
发表于 2007-01-17 18:52 |只看该作者
====

看看 RFC 吧。虽然和 ``KFC'' 只差一个字母

====

论坛徽章:
0
9 [报告]
发表于 2007-01-18 00:56 |只看该作者
原帖由 langue 于 2007-1-17 18:52 发表
====

看看 RFC 吧。虽然和 ``KFC'' 只差一个字母

====

就是看RFC2821没看出什么花头

论坛徽章:
0
10 [报告]
发表于 2007-01-18 01:03 |只看该作者
原帖由 cookis 于 2007-1-17 17:27 发表
这不是已经发送成功了吗..250 Mail queued for delivery.
在排队呢..一会你再看..
最好用公司的企业邮箱..不会排队..直接就发送出去了.
我前几天也写了个这种类..也遇到好多问题..

现在一切都OK了..找个源码 ...

前两天就发的,现在都没收到
抓Outlook/Foxmail的包
都是RCPT TO之后RSET两次,再从MAIL FROM开始重新发送
然后发送DATA之后收到:354 End data <CR><LF>.<CR><LF>
最后收到的是:250 Mail OK queued as smtp11...

在FC下面运行,发送DATA之后也是:354 Please input mail.
发送之后收到的是:250 Mail OK queued as smtp11...
只不过Outlook / Foxmail发送QUIT之后返回221 Bye,而FC6下返回的是421

可以贴一下你的源码处理吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP