win7系统下载
当前位置: 首页 > 网络技术教程 > 详细页面

telnet smtp 535 Error的区分与处理

发布时间:2019-10-18 文章来源:xp sp3系统下载 浏览:

网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等。 当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。

telnet可以帮助我们连接SMTP服务器,不少人都会尝试这个方法来进行服务器的连接。但是也有很多朋友发现其中会出现很多错误。今天我们就来讲解一下telnet smtp 535 Error的错误内容和解决方法。通过telnet smtp服务器的25端口检查smtp服务器是否可用,或用程序采用socket通讯的方法与smtp服务器直接交互,往往在验证用户的时候出现这样的错误提示535 Error: authentication failed

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

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

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

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

例如要实现socket通讯,

的语法是:

建立连接:

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格式

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

php

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



网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验―从硬件上、软件上、所用标准上......,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。

本文章关键词: telnet smtp 535 Error