如何在发送邮件时修复 Joomla 'SMTP connect() failed' 错误

灰暗的星星灰暗的星星灰暗的星星灰暗的星星灰暗的星星
 
分类:技术文章

Joomla 是一种常用的网站内容管理软件。 在 Joomla 中,电子邮件用于各种目的,例如联系表单提交或密码重置。

Joomla 'SMTP connect() failed ' 是 Joomla 中常见的电子邮件错误。 电子邮件发送失败,显示此错误。

默认情况下,Joomla 使用 PHP 邮件功能来发送邮件。 可以从 Joomla 管理员仪表板更改 PHP Mail 的设置。

以管理员用户身份登录 Joomla 并转到“系统”->“全局配置”->“服务器”部分。 在“邮件设置”下,您可以看到作为邮件程序的 PHP 邮件及其相应的设置。

 

Joomla 中的默认设置 - PHP 邮件功能

Joomla 中的默认设置 - PHP 邮件功能

 

是什么导致错误 Joomla 'SMTP connect() failed'

在许多禁用 PHP 邮件功能作为服务器安全措施以避免垃圾邮件的服务器中,此默认 Mailer 将无法发送邮件。

这时我们将SMTP配置为Mailer。从Mailer的下拉菜单中,选择SMTP而不是PHP Mail:

 

将 PHP 邮件更改为 SMTP 邮件功能

将 PHP 邮件更改为 SMTP 邮件

 

即使选择了 SMTP 邮件程序,如果 SMTP 服务器的相应设置没有正确配置,它也不会成功地从服务器发送邮件。

尝试通过联系表格或密码重置表格从 Joomla 网站发送邮件最终会给出错误“ 发送电子邮件时出错。 SMTP 连接()失败 。”

错误“Joomla SMTP connect() failed”通常是由“邮件设置”中的“SMTP 安全”字段填写不正确引起的。

由于多种原因,SMTP 连接可能无法建立:

  1. SMTP 身份验证中提供的用户名和密码错误。
  2. SMTP 端口在服务器防火墙中被阻止。
  3. 邮件服务器不支持 SSL/TLS。
  4. 使用第三方服务器,例如 gmail 或其他不安全的应用程序。
  5. 升级到具有增强的安全功能或错误的 Joomla 或 PHPMailer 版本。

如何修复错误 Joomla 'SMTP connect() failed'

在这里,我们将看到如何正确地设置这些设置,以避免Joomla的电子邮件传递错误。

在 Joomla 管理员面板中,在“系统”->“全局配置”->“服务器”->“邮件设置”下,选择邮件程序“SMTP”并输入主机、用户名和密码。 打开 SMTP 身份验证部分。

 

Joomla 邮件的 SMTP 配置设置

Joomla 邮件的 SMTP 配置设置

 

1. SMTP主机和端口设置

在“SMTP 主机”部分输入您的邮件服务器的名称。 这通常是“域名”或“mail.domain.com”。 确保 SMTP 主机的 DNS 正确解析。

将端口号指定为 25,即默认 SMTP 端口。 对于使用自定义端口(例如 587 用于 SMTP 以避免垃圾邮件)的邮件服务器,请提供该端口。

某些邮件服务器也可能使用防火墙规则限制对其端口 25 的访问。 在这种情况下,您的 IP 应在防火墙中列入白名单以避免 SMTP 连接错误。

要确认与 SMTP 服务器和端口的连接工作正常,请使用以下命令:

telnet domain.com 25

在确认 SMTP 连接工作正常后,使用适当的主机名和端口号。 如果无法建立连接,邮件传递将失败并出现错误“ SMTP connect() failed ”。

2. SMTP认证细节

每个邮件服务器都有一个身份验证系统来验证用户,然后才允许他们连接到它并发送邮件。 在您的 Joomla Mail 设置中,将其打开(是)。

提供电子邮件帐户的用户名和密码。 输入完整的“ 该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。 如果是非默认帐户,请

每当出于安全原因更改或更新电子邮件帐户密码时,请不要忘记在“邮件设置”中更改密码。

如果提供的身份验证详细信息错误,Joomla 将无法发送邮件并给出错误“ SMTP connect() failed ”。

3. SMTP安全设置

为了安全的电子邮件传输,始终建议选择带有 SSL/TLS 协议的 SMTP。 因此,从“SMTP 安全”的下拉列表中选择“SSL/TLS”选项。

但是对于某些电子邮件服务器,可能无法启用此 SSL/TLS 支持。 在这些情况下,如果您选择“SSL/TLS”安全性,邮件可能无法送达。

要验证邮件服务器的 SSL 证书,请使用以下命令:

openssl s_client -starttls smtp -crlf -connect mail.domain.com:25

使用过期或自签名证书可能会导致使用 SSL 的邮件传递失败并给出错误“ SMTP connect() failed ”。

因此,在这些情况下,解决方案是为您的邮件服务器正确配置 SSL,或者将 SMTP 安全设置从“SSL/TLS”更改为“无”,这是不太安全的设置。

 

将服务器安全性从 SSL/TLS 更改为无

将服务器安全性从 SSL/TLS 更改为无

 

4. 支持第三方应用

如果您使用的是 gmail 电子邮件服务器而不是您自己的邮件服务器,那么有几点需要注意。 您必须启用“身份验证 - GMail”插件。

您可以从管理区域执行此操作:“扩展 -> 插件管理器 -> 身份验证 - GMail”选项。

此外,Gmail 服务器可能不接受来自某些邮件客户端应用程序(例如移动应用程序)的连接尝试。 在这些情况下,要么使用安全的应用程序,要么放松安全措施。

在“我的帐户”->“安全性较低的应用程序”部分中,打开“访问安全性较低的应用程序”选项以放松安全设置。

这将避免在尝试使用 Gmail 从 Joomla 发送电子邮件时出现 Joomla 的“SMTP 连接失败”错误。

简而言之..

其他变体 SMTP connect() failed” 错误的 Called Mail() without being connected” “SMTP Error: could not connect to SMTP host”。

除了我们讨论过的配置设置之外,要记住的重要一点是在 Joomla 或 PHPMailer 升级期间要采取的安全预防措施。

由于新版本可能经常带有可能破坏工作网站的功能或错误,因此在生产服务器中升级之前进行适当的备份并进行测试安装总是很重要的。