telnet smtp的错误分析以及处理

网络 网络管理
文章摘要:下面我们来对telnet smtp 的有关错误进行一下分析。那么,文中给出了具体的错误分析以及解决的方法。

SMTP的服务和Telnet服务的结合,使我们对网络的管理更加便利。如今不少企业的网络都采用了这样的形式。但是最近我们的网友常会问到telnet smtp 535 Error的相关错误。今天我们就来讲解一下telnet smtp 535 Error的错误内容和解决方法。通过telnet smtp服务器的25端口检查smtp服务器是否可用,或用程序采用socket通讯的方法与smtp服务器直接交互,往往在验证用户的时候出现这样的错误提示535 Error: authentication failed

这是因为当服务器要求客户端输入帐号,密码时必须是经过base64码转换的.有的人也转换了,但不知道为什么还出这种问题,实际上是因为你的转换没有成功.这种失败用.net socket编程时就比较多见.而用php作为工具进行转换就容易成功.笔者作过试验,在.net中,由于没有现成的Base64编码函数,于是从网上下了一个函数,用此函数对邮箱帐号,密码进行编码,在php中,有一个函数base64_encode() 可以直接调用,用php的函数直接对邮箱帐号,密码进行编码。结果发现两种结果不一样,主要体现在对帐号的上,这两种方式对后缀@163.com 编码效果就不一样,***用telnet作测试,发现用php自带的base64_encode() 编码的结果是正确的.

这里还要提到两个有趣的现象:

1.很多人认为用telnet 25 或socket 通讯的方式与smtp服务器交互,可以确认某个邮件帐号是否存在,例如输入想要测试的邮箱帐号,再随便输个密码,希望服务器返回帐号密码错误的信息,以确认邮箱的确存在.但实际上这种方法多数情况下是不行的.因为即使帐号存在,密码错误,或帐号错误返回的信息都是一样的,都是:telnet smtp 535 Error: authentication failed.从而无法判断.

2.另一个是php和.net语法的的比较.php的确比.net语法上简单多了.

例如要实现socket通讯,

.net 的语法是:

建立连接:

TcpCliet client = new TcpClient(server,port);

NetWorkStream stream = client.GetStream();

发送数据:

byte[] arrayToSend=System.Text.Encoding.Default.GetBytes(stringToSend.ToCharArray());

stream.Write(arrayToSend,0,arrayToSend.Length);

得到数据:

int len = stream.Read(bb,0,bb.Length);

string read=System.Text.Encoding.UTF8.GetString(bb);

string result= read.Substring(0, len);

php就一句,类似:

建立连接

$fp=fsockopen ( $this->smtp, 25, $errno, $errstr, 60);

发送数据

fputs($fp, $lastact);

取数据

$lastmessage == fgets($fp,512);

再如要实现字符串转换为base64格式

.net

没现成的(可能是我不知道),还要从网上下一个函数,编译到自己的工程中.

php

提供了base64_encode() 搞定.其实这也体现了.net的确比较严谨,主要是对类,类型转换很严格,但的确是麻烦,也不好记.希望以上的方法,能够帮助大家解决telnet smtp 535 Error的问题。

责任编辑:佟健 来源: 互联网
相关推荐

2010-07-22 13:05:52

telnet smtp

2010-07-15 14:32:00

AIX TELNET

2010-07-22 13:23:46

telnet SMTP

2010-12-31 14:48:50

SMTP 通信

2010-07-20 14:28:43

Telnet会话SMTP

2010-07-20 13:29:30

Telnet服务器

2010-07-15 19:20:34

Telnet连接SMTP服务器

2011-11-25 17:05:25

2010-07-16 10:42:14

telnet批处理

2010-07-19 16:55:51

Telnet命令

2010-07-14 16:09:52

Telnet命令例子

2010-07-26 15:18:19

Telnet命令

2010-07-26 13:03:23

Telnet会话

2010-03-25 10:33:36

邮件服务器

2013-04-15 09:48:40

AndroidAVD错误处理方法

2010-07-26 10:11:10

Microsoft T

2010-07-21 15:27:51

2010-07-22 12:44:43

Telnet 1433

2010-07-17 00:57:52

Telnet身份验证

2017-09-22 15:25:40

Go语言其他语言错误处理
点赞
收藏

51CTO技术栈公众号