此文章很好很全面,感谢 大海 & Seape Blog 休闲茶馆http://blog.csdn.net/Seape/archive/2005/01/09/246272.aspx
电子邮件是Internet上最重要的应用之一,它提供了一种极为方便、快速的通讯方式。但是,很多网民都有过收发电子邮件失败的经历。下面笔者通过对E -mail收发失败的原因作详细的论述,来谈谈如何提高E-mail收发的成功率。
一、E-mail收发的一般过程
一般来说,E-mail的发信方式分为两种:一种是通过ISP或免费邮箱服务商提供的SMTP发信服务器中转的发信方式;另一种则是通过本机建立S MTP发信服务器直接发送电子邮件的方式。
1、通过邮件发信服务器发信的收发过程。
在这一发信过程中,首先由发信人通过电脑将电子邮件发送到SMTP发信服务器上,如果发信服务器收到的邮件合法,发信服务器通过一种“存储转发”技术,将该电子邮件在服务器上排队,当轮到该邮件发送顺序时,再由发信服务器将邮件发送到对方的收信服务器(M X邮件交换服务器)上,再由收信服务器转发到POP3服务器上(很多服务器系统的收信服务器和POP3服务器是同一服务器),最后由收件人通过电脑上的客户端软件将电子邮件从P OP3服务器上取走。
2、通过本机直接发送电子邮件的过程。
与上述发送过程不同的是,一些软件提供本机直接发送电子邮件到收信服务器上的功能,其实就是利用本机电脑建立一个SMTP发信服务器,由本机充当发信服务器的功能,绕过I SP或免费邮箱提供的SMTP发信服务器。因此本机既充当发信人电脑,又充当发信服务器,其发信过程与上述过程类似,但减少了发信人与发信服务器之间的网络传输过程和邮件的排队等待时间。
二、电子邮件收发失败的原因
在上述发信过程中,只要有一个环节出现问题,都会引起E-mail收发失败,因此,电子邮件收发失败主要有以下一些因素:
1、没有正确地配置客户端软件的帐号、服务器属性等。
正确配置客户端软件的邮箱帐号、收发邮件的服务器属性是成功收发E-mail的关键。在这里需要配置的主要是两个服务器,即SMTP服务器和P OP3服务器以及帐号及密码。
SMTP服务器:即你用来发送邮件的服务器的地址,您的邮件将通过此服务器发送出去。如: xf.hb.cninfo.net。也可写成IP地址格式,如:61.136.152.3。
POP3服务器:保存了外界发给您的邮件。您通过邮件客户端软件,例如:Outlook Express将这些邮件下载到您的PC上,再处理这些邮件。如果SMTP和POP3是同一个主机,则两者相同,如均为:xf.hb.cninfo.net。同样一些免费邮箱的服务器一般要在前面加上“p op.",如:pop.163.com。
POP3和SMTP服务器一般有以下几种填写方式:
1) SMTP.xxxx.xxx pop.xxxx.xxx
2) xxxx.xxx xxxx.xxx
3) SMTP.xxxx.xxx pop3.xxxx.xxx
帐号:实际上是POP3服务器的帐号。您通过此帐号和相应的口令从POP3服务器上收取您的邮件。如:您的邮箱是t010405@xf.hb.cninfo .net,那么您的帐号就是@前的“t010405”。一些免费邮箱的帐号需要填写邮箱全称,而不仅仅是@前面的部分,如果你确认自己的密码正确无误,却不能通过密码验证,一般就是这个原因。
密码:您的帐号密码。
只有正确填写了这些信息,才能正确地发送电子邮件。初级用户最容易犯上述错误。
2、收件人的邮箱地址填写有错误。
要保证电子邮件能被正确地发送并被收信人收到,准确地填写收信人的邮箱地址是非常重要的。邮件不能被正常发送或收信人收不到邮件,往往是收信人邮箱地址填写不正确。目前由于大家在注册邮箱时,往往不容易注册到好的帐号名,因此大家不得不混合使用字母和数字以及一些特殊字符,而这往往容易造成抄写对方收件人邮箱地址时发生错误。例如:英文小写字母“l ”和阿拉伯数字“1”、英文小写字母“o”和阿拉伯数字“0”、下划线“_”和连字符“-”这些字符极为相似,在抄写收件人邮箱地址时尤其应注意。收件人邮箱地址填写错误,也分为两种情况:
1) 邮箱地址帐号错误:即收件人邮箱@前面的部分填写错误。 在这里又分为两种情况,第一种情况是地址帐号误填写成了其他存在的邮箱地址,如:发信人xiangkai68@sina.com希望将信件发送到zxk 71@21cn.com,地址却误填成了zxk717@21cn.com(该邮箱地址存在) ,则邮件没有被发送到希望的邮箱中,当然收件人收不到邮件了。另一种情况是地址帐号填写成了其他不存在的邮箱地址,如:收件人地址为:z xk712871@21cn.com(该邮箱地址不存在) ,则在采用邮件服务器方式发信过程中,一般并不提示发送错误,而是提示发送成功(一般在域名相同的邮箱之间发送电子邮件,发信服务器会判断邮箱地址是否正确并给出错误提示)。因为只要邮件能够正确地传送到发信服务器上,O utlook Express、Foxmail等邮件客户软件就会给出发送成功的提示。而随后几分钟,你会发现你的发信箱里会退回你发送的电子邮件,并通知你收件人邮箱地址非法或不存在。因此你若不及时检查你的收件箱,还以为对方已经收到电子邮件了呢?还有一种情况,收信服务器上若不存在相应的邮箱地址,有些收信服务器会“智能”地作出判断,将他们发送到可能正确的邮箱地址中,如:发送给j ohn@myorg.com的邮件被发送到了 johm@myorg.com中,不过一般会通知给发信人该信息。而采用本机直接发送电子邮件的客户端软件发送电子邮件时,由于它采用直接与收信服务器相联系的方式,因此在发送过程中,一般即会被告知收件人邮箱地址不存在。不过,当M X邮件交换服务器与POP3服务器不是同一服务器时,只要将邮件发送到MX邮件交换服务器上,也会被通知发送成功,但很快你能收到退信通知。
2) 主机地址域名错误:即收件人邮箱@后面的部分填写错误。 对于这种情况,在发送过程中,由于通过域名解析后无法找到相应的主机(服务器),所以邮件根本就发送不出去。
因此,在填写收件人邮箱地址时,应非常仔细,对于经常联系的朋友,可将他们加入到地址薄中,在发送信件时直接选用。对于收到的邮件最好采用回复的方式,以避免邮箱地址抄写错误。对于不能确定的邮箱地址,最好采用校验邮箱地址类软件先校验后再发送。
3、发信服务器出现故障.
对于发信服务器来说,出现故障是不可避免的。因为网络繁忙、黑客入侵等许多原因都可能使其发信服务器暂时出现故障而不能被访问,在这种情况下使用该邮件服务器发送电子邮件当然不能成功发送,我们只有等待发信服务器恢复正常后再发。而邮件服务器系统升级也可导致发信服务器I P地址等发生变化而导致原来的发信服务器不能被访问(有些用户在填写客户端软件的发信服务器时填写成IP地址形式)。你若拥有多个邮箱帐号,也可以换一个发信服务器发送。最好的办法当然是采用能够提供本机直接发送电子邮件的软件(例如:A dvanced Direct Remailer2.17,以下简称ADR,下载地址:http://www.mailutilities.com/adr/adr.zip)来发送,这样可绕过发信服务器而直接发送电子邮件到收信服务器上。另外,发信服务器最好填写成域名形式,不要填写I P地址形式,因为这样可避免邮件系统升级等原因而引起的发信服务器IP地址变化,从而不能正常发送电子邮件。
4、收信服务器出现故障.
同样,不仅发信服务器容易出现故障,收信服务器、POP3服务器也同样会出现故障。一般说来,当收信服务器临时出现故障时,在一些情况邮件并不会丢失,因为当收信服务器出现故障时,发信服务器由于不能将邮件发送到指定的收信服务器上,发信服务器会在指定的时间间隔重新发送,例如:隔3 0分钟后再发送一次,若仍然不能发送成功,则间隔60分钟后再发送一次,以此类推,直到发送成功。一般而言,当收信服务器出现故障时,系统管理员会在较短的时间内使其他恢复正常。若在指定的时间内不能成功发送,例如:4 8小时内,则会将邮件退还给发信人,并说明邮件不能被成功发送的原因。其实在此期间,你并不能立即知道收信服务器出现了问题。因此对于重要信件,你若采用本机直接发送电子邮件的软件发送,则在发送过程中,就可知道收信服务器是否正常,这样就可以采取其他通讯方式,例如:传真等方式来联系你朋友了。
收信服务器出现问题,对于发信人是没有办法解决的,我们只有祈祷收信服务器尽快恢复正常。
5、域名解析服务器出现故障。
一般用户在用邮件服务器方式发送电子邮件时,需要解析发信服务器的域名地址,而在收信时需要解析收信服务器的域名地址。因此,当域名解析服务器出现故障时,由于不能正常解析服务器的域名地址,用户当然不能连接到发、收邮件的服务器上,自然不能正常收发电子邮件了。如果用户将收发邮件的服务器地址填写成I P地址形式,就可以避免域名解析服务器出现故障时而不能正常收发电子邮件了。同样采用本机直接发送电子邮件方式发送电子邮件,如果域名解服务器出现故障,或邮件地址的后缀域名与域名服务器的解析范围有冲突,则同样无法解析出对方收信服务器的域名地址,这时我们只有更换另一个域名解析服务器。因此,我们在W indows的网络TCP/IP设置中,必须正确填写好主控DNS和辅控DNS,这样当一个域名解析服务器出现问题时,可调用另一个辅控DNS。
另外还有一点,中国电信169网在国际上是不合法的,那么169网的域名采用163国际网上的域名解析服务器来解析便会发生域名不能解析或解析错误而导致发送失败或发送到不正确的邮箱中。
一些域名解析服务器可能存在解析范围的问题,不能解析出极个别特殊的地址,因此邮件无法发送到一些特殊邮箱中。
6、网络连接不稳定
发送电子邮件的过程中,稳定快速的网络连接也是保证邮件被正常发送的重要因素。若在发送电子邮件过程中,出现断线、较强的线路电磁干扰等情况往往会导致发送失败或邮件异常改变而受损,自然收件人不能收到正常的邮件。这时我们只有重新发送该邮件了。特别是发送大邮件过程中,对于网络连接的质量要求更高。因此建议大家在发送电子邮件前,应先建立稳定快速的I nternet连接,并从本地的ISP(163、169、263、167等)中选择速度快且稳定的连接后再发送。发送前最好先压缩附件,以减小邮件的大小,当然猫也要选择好一点的,另外在发送电子邮件的过程中,最好不要进行其他浏览操作,以免占用带宽,延长发送时间,增大产生错误的概率。
7、邮件属性超过发信服务器的限制。
为了充分利用网络资源,提高邮件发送用户的响应速度和效率。SMTP发信服务器对用户邮件的大小、连接数量等进行限制,当超出SMTP服务器的限制时,服务器将拒绝发送。一般来说,发信服务器对邮件有以下几种限制:
限制邮件大小:不管是免费邮箱还是ISP提供的SMTP服务器,对发送邮件的大小都有限制,一般应小于2M(包括附件),而实际上我们只能发送1 .5M左右的邮件,因为在发送电子邮件前还需要对邮件进行编码,会导致邮件大小增加5%~20%之间。而具体能发送多大的邮件,请查阅相关S MTP服务器的资料。当客户端邮件程序试图发送一个大于此限制的邮件给SMTP服务器时,将收到一条未发送报告或发送错误报告,随后将邮件退回客户端。
限制每个连接的邮件数:限制邮件客户在一次连接中最多可以发送的邮件数目,超出这一限制的邮件将被拒绝发送。
限制每个邮件的收件人数:限制每封邮件的收件人数上限,超出该上限的邮件将退回发信人。
当电子邮件超出上述限制时,我们可以将电子邮件分几次来发送,或将较大的邮件分成几个部分,通过多份电子邮件来发送,这样每封信的长度较短,每次发送的数量也较少,也可大大减少出错的概率。当然,若我们采用本机直接发送电子邮件的软件,例如:A DR来发送邮件,一般都会突破这些限制,可轻松安全地发送大邮件。
8、收信服务器上收件人邮箱空间满;邮件大小超出收信服务器的限制。
若收件人邮件比较多,而收件人在一段时间内由于某种原因长期不收信,以及垃圾邮件的干扰,往往会导致邮箱空间占满,当然就不能正常收取新邮件了。而遭到邮箱炸弹的袭击,也同样会出现这种情况。有些收信服务器邮箱缺省收信方式为收信后在服务器上仍保留备份,常常会导致邮箱空间慢慢被占满,也是引起不能收取新邮件的原因。因此,大家要养成定期访问邮箱和清理邮箱的习惯,并设置好邮箱的垃圾过滤功能,来减少垃圾邮件的干扰。另外,接收的邮件过大,超出收信服务器的限制,也是不能正常接收邮件的重要原因。对于这种情况,大家只有申请大容量的邮箱空间,例如:5 0~100M的邮箱,而大容量的邮箱对大邮件的接收和发送的限制较宽。同样,收信服务器对接收邮件的大小也有限制,例如:一个5M的邮箱允许接收的最大单个邮件为2 M,当超出其限制时,也不能正常接收邮件。
9、收信服务器设置有“黑名单”,防止Spammer发送垃圾邮件,限制来至一些邮箱和一定IP地址范围的邮件。
一些收信服务器对发送垃圾邮件的主机(spammer)有非常强的保护作用,所以许多合法的电子邮件不能被发送到收件人邮箱中,这些spa mmer主机的地址被收信服务器登记为“黑名单”,收信服务器将拒绝收取和发送来至该地址或域名的电子邮件。
所以你应该确信,你的E-mail地址或域名地址不被标记为spammer,否则,许多收信服务器将拒绝你的连接。这种情况下,你可以更换其他邮箱的S MTP发信服务器发送电子邮件,也可通过本机直接发送电子邮件,绕过列为黑名单的邮箱或SMTP发信服务器,就有可能避开黑名单而提高发送电子邮件的成功率。
10、收件人邮箱被收件人主动设置有垃圾过滤功能,防止一些不合法的和来至一些邮箱和一定IP地址范围内的电子邮件。
注意:与上一原因不同的是,这是收件人对自己邮箱主动设置的邮件过滤功能。若发信人邮箱是被禁止接收的用户,那么在多数情况下,发信人可以将邮件发送到收信服务器上,发送过程中也不提示任何错误,但邮件随即被转移到其他文件夹,例如:直接被送到垃圾邮箱中或被删除,不再进入收件箱。因此在收件箱中不存在该邮件,邮件收取过程中,就不可能收取到。现在很多免费邮箱,都提供有垃圾邮件过滤功能,例如:对h otmail.com邮箱,我们可以通过WEB页面方式登录该邮箱后,将邮箱的垃圾邮件过滤级别设置为“高”后,将不能通过抄送的方式给hotma il.com邮箱发邮件,否则会被当作垃圾邮件过滤掉。如果被收件人列为拒收的对象,通过该邮箱就不能成功地发送到收件箱中。
11、收信服务器对发送电子邮件的软件(主要是群发软件)设置有拒发功能。
很多收信服务器为了防止垃圾邮件的传播,对市面上流行的群发软件设置有监控功能,当发现这些邮件是采用这些邮件群发工具发送的,则拒绝发送到指定的邮箱中。这主要是通过对邮件头的分析或其他相关信息来判断的,一般来说,邮件发送工具在对邮件进行编码时,会对邮件头放置一些信息, 例如邮件头中的X-mailer信息,主要是说明邮件发送时采用的邮件软件的。收信服务器会通过这些信息来判断邮件是通过什么工具发送的。如果收信服务器发现是用这些群发工具发送的,将拒绝接收或直接过滤掉,而且并不返回任何提示信息给发信人。
12、收信服务器对邮件的主题和内容设置有拒发功能。
发送电子邮件时,一定要注意邮件主题和邮件内容的字词书写,很多网站的邮件服务器为过滤垃圾邮件设置了常用垃圾字词过滤,如果邮件主题和邮件内容中包含有如:大量、宣传、钱、群发等字词,服务器将会过滤掉该邮件,致使邮件不能发送成功。
因此在书写邮件主题和内容时应尽量避开你心目中认为的有垃圾字词嫌疑的文字和词语,才能顺利发送电子邮件。
13、有些发信服务器为了减轻负担和抵制垃圾邮件的发送,拒绝发送发信人地址非本服务器的邮件。
现在绝大多数免费邮箱为了减轻SMTP服务器的负担,同时也为了防止垃圾邮件散布者利用本服务器发送垃圾邮件,都采用SMTP服务器认证和拒绝发送发信人地址非本服务器的邮件。例如:如果你在2 1CN上有一电子邮箱zxk@21cn.com ,在新浪上有另一电子邮箱xiangkai68@sina.com ,你用邮箱zxk@21cn.com 发送电子邮件,而在SMTP发信服务器上填写新浪的SMTP服务器,即SMTP.sina.com.cn,并填写好正确的用户名和口令,你却不能正常发送电子邮件,就是因为这个原因。
14、一些发信服务器增加了SMTP服务器认证功能,只有本服务器注册用户提供正确的用户名和口令才能正常地发送电子邮件。
如果你不是本服务器注册的合法用户,不能提供正确的用户名和口令,将不能利用其服务器发送电子邮件,这主要是为了避免了非法用户利用本服务器发送大量的垃圾邮件,减少对用户邮箱的干扰。现在许多早期版本的电子邮件客户端软件,如F oxmail3.0均不支持该功能,因此首先你应升级你的客户端邮件软件。
15、发信服务器或收信服务器拒绝收发匿名电子邮件或不合法邮件头的电子邮件。
一般来说,不管是发信服务器还是收信服务器,为了充分利用网络资源和防止黑客的入侵,都设置有一定的垃圾邮件过滤和防火墙功能,一般是不允许匿名发送电子邮件的,S MTP服务器一但发现邮件头中的From中的字段为空或不合法,则拒绝发送。另一方面,也无法在邮件发送失败后,返回出错信息给发信人。所以在发送前,客户端软件和服务器会首先确定这些信息,只有当这些邮件头信息正确后,才能正确发送。所以现在大多数邮件客户端软件在系统设置或建立新邮件时,都必须正确填写发信人邮箱地址,一般系统会自动取当前帐号邮箱。若不填写,一般不能发送。不过现在也有许多支持匿名发送电子邮件的软件,多数为在本机直接建立S MTP服务器实现本机直接发送电子邮件,对于收信服务器而言,对这一点要求并不严格,收信服务器多数情况下,可接收匿名邮件,当然在给一些安全性级别要求较高的收信服务器发送电子邮件时,收信服务器往往会因为同样的原因拒绝发送到给定的邮箱中。
因此,要想正确地发送电子邮件,正确完整地填写邮件头信息是很重要的。
16、一些收信服务器对于本域名邮箱发送的给本域名邮箱上的另一邮箱的电子邮件只接收它们自己的SMTP服务器发送的邮件。
例如:如果你用163.com邮箱发送一封邮件给163.com上的另一邮箱用户,你可以使用SMTP.163.com来发送,而如果采用其他SMTP服务器来发送,例如:一些当地I SP提供的无需认证的SMTP服务器来发送,则会提示发送失败。同样,你用特快专递也不能发送成功,就是这个原因。Sina.com邮箱也存在这种限制,不过发送过程并不提示发送失败,但第二天,就会收到拒收的退信。
17、收信服务器对一次连接中来至同一邮箱地址的电子邮件的数量和发送的时间间隔进行了限制。
对于这种情况,美国在线(American On-Line),域名AOL.COM,在这一点上声誉就不太好,如果当你在一个很短的时间间隔内,例如一分钟,发送几十封信给AOL.COM的用户, 就有可能会出现问题。这时,AOL的过滤器会打开,认为你是在发送垃圾邮件,而把你的电子邮件踢出去,而且并不返回任何错误提示。A OL也不通知你,而你全然不知,你的IP地址将被锁定为黑名单,而从你的电子邮箱中发出的信件以后将再也不能收到。AOL接收所有发送给他的电子邮件,不发任何错误提示,然后剔除他们。
对于这种情况,我们可以在发送每封信之间间隔一段时间,也可以利用ADR来发送,用ADR可以创建发送邮件的延时列表,例如,若发送三十封信给A OL.COM用户,可设定每间隔三分钟发送一封电子邮件。
18、计算机病毒或黑客木马程序修改或占用了客户端软件收、发邮件的服务器的端口地址。
通常情况下,SMTP发信服务器的端口地址为25,收信服务器的端口地址为110。若遭到病毒或黑客木马程序的袭击,则有可能改变或被其他软件占用这两个端口地址,使收发电子邮件失败,所以当原先正常工作的系统突然不能正常收发电子邮件时,不防从这方面找找原因。
19、客户端邮件软件中的“收件人”或“抄写”的格式填写不对。
在Outlook Express中,在将同一封信发送给多个收信人时,各收件人邮箱间需要用分号或逗号隔开,而在Foxmail中却只能用逗号隔开,不能用分号隔开,否则不能正常发送电子邮件,这一点请大家一定要明确。因此,大家在填写收件人邮箱地址时应首先阅读软件的相关文档,仔细检查填写的格式是否正确。
20、客户端邮件软件本身存在不足或未注册。
现在发送电子邮件的客户端软件非常之多,而且各有特色,但它们或多或少地存在一些问题。因此,大家在选择这些邮件软件时,应尽量选择大公司的成熟产品, 并且还应经常升级更新,因为邮件服务器系统总是在不断升级更新的,因此软件也要相应地适应。例如:邮件超级快mailexpress1.5(下载地址:http://jiaohuan.51.net/files/mailexpress.zip )
未注册版,不能成功地发往21cn.com邮箱和sina.com邮箱。在发送过程中提示“发送成功”,但收件箱并未接收到该邮件。而对该软件的注册版进行测试,可成功发送所有测试邮箱。原来,未注册版本中含有广告和相应的网站链接,2 1cn和sina.com等邮箱对相应的网站链接进行了过滤,拒绝接收。
11、 为了确认收件方是否收到你的电子邮件,在发送电子邮件时,可增加请求对方回执的功能(OE5.5以上、Foxmail4.2以上版本支持)。
12、 不要在较短的时间间隔里给同一收信服务器发送过多的电子邮件。
13、 采用SMTP发信服务器方式发送电子邮件时,在发送给收信人的同时,最好能暗送(密件抄送)给自己一份,可以通过检查自己邮箱的收件情况及时了解S MTP发信服务器的工作情况。若自己能收到电子邮件,则说明SMTP发信服务器工作正常,并已轮到自己的邮件发送了,所以安全性大大提高。
14、 你若有多个电子邮箱,在给收件人发信时,最好能采用与收件人邮箱在同一域名的发信邮件服务器发送,这样发信不仅速度快,而且稳定可靠,减少了中间环节,因为许多邮件服务器收发邮件使用同一邮件服务器或在同一子网中,所以安全性和速度都大大提高。
15、 若采用邮件服务器方式发送电子邮件,发送的电子邮件包括附件最好不要超过2M(大多数邮箱的限制),以避免发信服务器拒绝发送或收信服务器拒绝接收。
16、 对于大邮件的发送,最好采用能实现本机直接发送电子邮件的软件来发送,以克服发信服务器的限制,提高发送电子邮件的可靠性和成功率。
17、 对于一般的邮件,邮件格式最好采用文本方式,不要采用HTML格式,这样不仅因为编码后产生的邮件较小,不容易出错,而且极少数发信服务器为了安全性考虑,设置了一些过滤器,不支持H TML格式的邮件。
18、 要养成在邮件发送完成后检查收件箱的习惯,以确认收信服务器是否正常工作,只有没有收到退信,才有可能说明邮件发送成功。
19、 为了提高发信的成功率,必须完全正确填写好邮件头信息,如收件人、发信人、主题、以及相应软件中设置的返回地址,不能省略,以防止邮件服务器的拒绝接收。
20、尽量不要使用邮件分割功能,由于邮件分割相当于抄送或群发功能,有时会被服务器当作垃圾邮件拒收。例如,当hotmail.com的垃圾邮件过滤级别设置成高时,当采用拆分邮件方式发送,将会被当作垃圾邮件过滤到垃圾邮箱中(Becky!、Foxmail接收收信箱和垃圾邮箱中的邮件)
21、 在经济允许的情况下,最好申请注册收费信箱。因为收费信箱在服务和稳定性方面有较大优势。
总之,要提高收发电子邮件的成功率,关键是提高发送过程的成功率,在这一点上,我建议大家使用一款能实现本机直接发送电子邮件的客户端软件来发送电子邮件,可靠性和安全性方面相对来说,较好,也不会出现邮件丢失现象,并且可以大大提高发送电子邮件的成功率。