telnet smtp 535 Error的分析和解决

网络 网络管理
文章摘要:下面我们来对telnet smtp 535 Error的具体情况进行一下分析和解决。希望对大家有所帮助。

telnet可以帮助我们连接SMTP服务器,不少人都会尝试这个方法来进行服务器的连接。但是也有很多朋友发现其中会出现很多错误。今天我们就来讲解一下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-27 15:39:32

telnet smtp

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-27 16:22:14

NFS Server

2010-09-27 13:51:23

接口IP地址故障

2010-07-15 19:20:34

Telnet连接SMTP服务器

2010-07-27 16:44:15

2010-08-02 12:18:12

ADSL拨号错误代码

2010-07-15 14:32:00

AIX TELNET

2010-07-26 15:18:19

Telnet命令

2010-07-14 16:09:52

Telnet命令例子

2010-03-25 10:33:36

邮件服务器

2018-03-09 16:27:50

数据库Oracle同步问题

2010-07-26 13:03:23

Telnet会话

2021-12-12 18:12:13

Hbase线上问题

2010-07-26 10:11:10

Microsoft T

2010-04-09 16:48:51

2010-06-17 11:17:34

装系统出现Grub

2010-07-15 14:01:12

telnet乱码
点赞
收藏

51CTO技术栈公众号