我正在尝试使用 PHPMailer 通过 SMTP 和 gmail 发送电子邮件。我使用的确切脚本适用于其他服务器,但不适用于该特定托管公司的服务器。
我已经检查过phpinfo()
它告诉我allow_url_fopen
is on
并且没有disabled_functions
like fopen
listed.
该脚本失败,它告诉我:
SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
or else
SMTP Error: Could not authenticate.
我假设这是因为它无法连接,因为这又在其他服务器上工作并且身份验证凭据是正确的。
所以我更普遍地问,有没有办法可以使用 PHP 或 jamshellssh
检查端口是否确实打开?
您可以使用以下命令检查开放/可用端口fsockopen
:
$fp = fsockopen('127.0.0.1', 25, $errno, $errstr, 5);
if (!$fp) {
// port is closed or blocked
} else {
// port is open and available
fclose($fp);
}
...在哪里5
是调用失败之前的超时时间(以秒为单位)。
这可能是由于防火墙问题导致您的托管提供商阻止您连接到出站套接字和/或特定端口。请记住,阻止出站 SMTP 端口是一种非常常见的安全配置。回到过去,只有港口25
被阻止,但我开始看到越来越多的 SSL 变体也被阻止。
大多数提供商和托管公司只允许您连接到他们自己的 SMTP 服务器,以防止垃圾邮件发送者转发垃圾邮件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)