一步一步从原理跟我学邮件收取及发送 附录1 关于阿里云关闭 25 号端口的原因
本系列文章已经坑了很久了,因为笔者这几年经历了创业、就业、再创业、再就业以及其他更不便启齿的问题久未更新,好不容易更,却是附录。让大家失望了。不过这对于电子邮件相关的开发活动真的是一个很重要的信息。
我大概是五、六年前也是看到本站(即 cnblog)转换到阿里云的经历后开始尝试阿里云的。做过站点的伙伴们应该都知道,阿里云出现之前真的很痛苦,费钱不说各种层出不穷的隐性政策也是让人头痛:比如封闭动态 ip 的 80 端口这样的,很多早期站长应该都知道。展开就不说了,那样会被封帖子,单说端口被封闭吧,那时被封闭的其实也不只是 80 ,还有 bt 下载这样的也是选择性封闭的。搞得我们做站点的像是做什么灰色产业一样,后来有了阿里云以及各种其他云和所谓大数据的概念,终于我们站长不用再四处乱窜了,后来又有微信小程序这样推动企业上网的运动,有自己的站点逐渐成了主流,相关部门地态度也公开公正了好多,真的。
不过也许是当时多数人对互联网的了解还不深的原因,这种封闭其实对于一些偏冷门的沟通方式其实影响不大。比如早已被QQ、微信取代的电子邮件基本上只用于某些企业内部了,我就没碰到过邮件端口被封闭的情况,甚至 gmail 的通道某些情况下也是畅通的(估计很多人想不到吧)。
但就在最近我测试邮件的时候意外的发现从某些地方是无法将邮件发送到国内的某些服务器 25 端口上的。大家要仔细看我前面那句话,用防火墙“术语”就是服务器上的“入站”25端口在某些特定场景下无法访问,还不是说服务器不能访问海外(或者海内)的其他站点 25 端口。如果大家看懂了我前面的教程的话,那么我可以换更直白的说法,就是某些地方发邮件给你是被隐性的禁止的。
我觉得非常不可思议,以为是大家都懂的那种“互拦网”情况造成的,但测试后发现其他端口甚至是另外的一个邮件所用的 110 端口都是正确的。最后通过查看阿里云和开工单,了解到是阿里云出的所谓防垃圾邮件政策。大致思想是新站点不再开放 25 端口,即不允许从服务器发送电子邮件,除非是“某些特殊情况”。具体也不好展开说。这里单纯从技术角度来分析这个政策就是骗人的!因为只要是对网络程序比较了解的程序都知道,发送邮件是根本不需要占用自己的 25 端口的,是“占用”对方的 25 端口好不好!所以这个政策的实质述求就是封闭电子邮件服务器站点,那么企业邮件地址的不是完蛋了?放心阿里云说了,可以用它们的企业邮箱 ... ... 看到这里大家一定准备大骂阿里云为了卖企业邮箱出此下流手段。遗憾的是,不是,至少不完全是,而且非常的隐蔽。很容易发现这个让阿里云能卖出更多企业邮箱的政策真的不是他们的本意,因为其他的云基本上也是在同一时间推出了这一政策。所以基本上我们现在可以宣告国内服务器搭建企业邮箱已经完蛋了。至于国外服务器行不行我是不知道,不过国内云的海外服务器肯定也是不行的,阿里云的客服已经明确的和我说明了。当然了理论上你可以申请打开 25 端口,确实也可以,不过打开后的端口从某些地方访问仍然是失败的,这个大家应该都懂是怎么回事。我也明白,不过这里要吐槽的是明面上它们都借口是垃圾邮件,这骗别人也就算了,我刚好是写了二十年的电子邮件相关程序的人,我很负责的告诉大家,要是这样能反垃圾邮件那基本上可以拿诺贝尔文互联网学奖了,可惜的是当今流行的反垃圾邮件根本不是这个样子的,至于是什么样子的,我就不在这里科普提高某些人的技术了,还是让他自己多看看书吧。
其实把这个事情全怪在阿里云身上确实也是不合理,不过在与阿里云的沟通中,它们的敷衍和欺骗的态度实在让人心寒。最后阿里云给出的理由是某些信息运营商做的限制,我个人无法证实,不过基本上接受吧。另外这种封闭是选择性的,对比较大的站点比如比较有名气的邮箱和阿里云自身的邮箱,我已经测试过了,是畅通的,不过这也并不意味着您的企业邮箱放到这些服务器就能收到所有的邮件了,还有其他的原因让它收不了的。如果您的客户主要面向外贸恐怕还是要想别的办法。
这篇文章也不是要呼吁开放 25 端口,我们肯定无力改变这种现状。主要是告诉大家国内云建企业邮箱已经是行不通的了,免得浪费大家的时间。另外也鄙视一下所谓垃圾邮件的借口。另外阿里云和其他国内云上目前文档中公开说的解决办法 465 端口也是行不通的,大家不要浪费时间改代码了。如果您可以接受纯国内的电子邮箱,那么工单申请 25 端口,至少目前来说国内还是能互通的。