俄罗斯服务器上无法通过 SMTP 服务发送邮件

更新日期: 2020-07-17 阅读次数: 8699 字数: 504 分类: 服务器

在部署俄罗斯服务器时,发现无法连接国内的邮件服务器 smtp.mxhichina.com 发送邮件。报错信息为:

SMTP connect() failed.

smtp.mxhichina.com 使用的端口

参考阿里的文档:http://mailhelp.mxhichina.com/smartmail/detail.vm?knoId=5871700

SMTP smtp.mxhichina.com 25 465

测试邮件端口连通性

telnet smtp.mxhichina.com 25
telnet smtp.mxhichina.com 465

测试结果:

$ telnet smtp.mxhichina.com 25
Trying 205.204.101.152...
telnet: connect to address 205.204.101.152: Connection refused

果然无法联通。而在其他服务器上正常:

# telnet smtp.mxhichina.com 25
Trying 42.120.226.4...
Connected to smtp.mxhichina.com.
Escape character is '^]'.

跟服务器提供商扯皮

俄罗斯服务器提供商,以俄罗斯跟国内网络不稳定为由不建议使用国内的邮件服务。。。

这明显是端口没有开放的问题。我 top 了一下,居然发现这是个 32 核的机器,显然是一个多人共用的服务器。。。这就难怪了怎么说他也不给开放邮件服务端口。

不靠谱的 Mailgun

不得以要改用基于 http 的邮件发送 API,于是注册了 Mailgun。注册完之后,直接被禁用账号。。。

{
  "message": "Account disabled"
}

Your account is temporarily disabled. ( Account disabled ) Please contact support to resolve.

得了,惹不起,换服务。

阿里云 API 发送邮件

https://help.aliyun.com/document_detail/29460.html?spm=a2c4g.11186623.6.633.14c935f2BmDFkd

费用 1000 封,2 元。

费用很合理,但是我用 PHP 愣是没有调用成功官方的 SDK 。。。

Class 'DefaultProfile' not found

还是使用转发方案吧

不得已,我换了个方案,将俄罗斯服务器的邮件,转发到美国,然后再发送到自己邮箱。

太折腾了。。。

最后找到了一个朋友开发的邮件发送服务 Hedwi,完全满足需求。

俄罗斯服务器替代方案

经过这件事,我感觉目前使用的俄罗斯服务器提供商非常不靠谱,得找个替代方案。

暂时看,阿里云,亚马逊都没有俄罗斯境内的机房,抽空再调研一下。

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式