Laravel & Cpanel:如何修复 Swift_TransportException(邮件服务器)?

Posted

技术标签:

【中文标题】Laravel & Cpanel:如何修复 Swift_TransportException(邮件服务器)?【英文标题】:Laravel & Cpanel: how to fix Swift_TransportException (mail server)? 【发布时间】:2021-09-18 03:56:09 【问题描述】:

当部署 laravel 项目并将其放在服务器上时,我在尝试发送电子邮件时遇到此错误:

"Swift_TransportException 无法与主机 smtp.mailtrap.io 建立连接:stream_socket_client():无法连接到 tcp://smtp.mailtrap.io:2525(连接被拒绝)"

我尝试过切换端口,但不起作用。

Laravel 当前环境设置:

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=user
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls

有人对我可以尝试解决此问题的方法有什么建议吗?

提前致谢!

【问题讨论】:

【参考方案1】:

最好的办法是使用一些网络诊断实用程序来找出块的来源,然后更新相应的防火墙或修复网络问题。

    以 root 用户身份通过​​ SSH 或终端登录服务器

    安装 mtr 为:yum install mtr -y

    首先以 root 身份运行 MTR 测试:

    mtr --tcp --port 2525 --report --report-cycles 10 smtp.mailtrap.io

    你看到有多少跳?如果只是一个,则该块很可能来自您自己的本地防火墙。只有 2 个跃点可能是您的服务提供商。至于丢包、延迟等,这些很好理解,但不在本文的范围内。 Linode has a top notch mtr guide if you need.

    如果您在该 MTR 运行中没有找到任何块,请在切换到拥有 SMTP 脚本的 cPanel 用户后运行相同的命令:

su -l -s /bin/bash cpanelusernamehere
mtr --tcp --port 2525 --report --report-cycles 10 smtp.mailtrap.io
    还有多少跳?哪个节点似乎正在执行阻止?

如果连接在被拒绝之前合法地一直连接到 smtp.mailtrop.io,您需要让他们为您检查。

如果仍然不清楚发生了什么,您也许可以使用 telnet 和 nmap 找出一些额外的线索:

yum install telnet nmap -y 
nmap -p 2525 smtp.mailtrap.io
telnet smtp.mailtrap.io 2525

【讨论】:

它是共享主机,我们没有 root 访问权限。但他们说所有端口都是开放的...... @AurynVansteenkiste 您仍然可以向他们询问这些 MTR 命令的输出。我看不出他们无法提供该信息的任何原因,这对于您的故障排除工作非常宝贵。在我看来,这是一个完全有效的请求。如果他们不愿意帮助您找到阻止的来源,您可以考虑寻找更适合解决此类问题的托管服务提供商。 嗨,我没有问,因为他们告诉我所有端口都是开放的。但我猜他们会给我命令的输出。我托管在 godaddy > cpanel

以上是关于Laravel & Cpanel:如何修复 Swift_TransportException(邮件服务器)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 cPanel 共享主机上上传 laravel 项目?

如何使用 cPanel 电子邮件帐户在 laravel 中发送确认电子邮件?

如何在 Cpanel 的子域 lumen/laravel 上安装免费 SSL?

如何将 Laravel 5.5 应用部署到 Godaddy cPanel 共享主机

使用 cPanel 和 Laravel 将电子邮件发送到程序

Cpanel 共享主机中的 Laravel 5.5 错误 500