SMTP错误:无法连接到服务器:使用phpmailer时连接超时(110)

SMTP错误:无法连接到服务器:使用phpmailer时连接超时(110),php,smtp,centos7,Php,Smtp,Centos7,这在我的旧服务器上运行得很好 2020-07-18 16:37:45 SMTP错误:无法连接到服务器:连接超时(110) SMTP连接()失败。 我现在正在使用CentOS 7和php7.3.2 我试过的 使用端口587465,25 使用主机smtp.gmail.com,108.177.122.108 这是我的代码: <?php require_once "config.php"; use PHPMailer\PHPMailer\PHPMailer; use PHP

这在我的旧服务器上运行得很好

2020-07-18 16:37:45 SMTP错误:无法连接到服务器:连接超时(110) SMTP连接()失败。 我现在正在使用CentOS 7和php7.3.2

我试过的

  • 使用端口587465,25
  • 使用主机smtp.gmail.com,108.177.122.108
这是我的代码:

<?php
require_once "config.php";
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}
if($_SERVER["REQUEST_METHOD"] == "POST"){
    $randompassword = generateRandomString();
    $email = $_POST['email'];
    $mail = new PHPMailer(true);
    try {
        $connect->query("SET NAMES 'utf8'");
        $insertSql = "INSERT INTO users (username, password, email, forgot) VALUES ('$name', '$randompassword', '$email', 1)";
        $status = $connect->query($insertSql);
        $mail->isSMTP();                                            // Send using SMTP
        $mail->SMTPAuth   = true;
        $mail->Host       = 'smtp.gmail.com';                    // Set the SMTP server to send through
        $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
        $mail->Username   = 'username@gmail.com';                     // SMTP username
        $mail->Password   = '*******';                               // SMTP password
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
        $mail->Port       = 587;                                    // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
        $mail->Charset    = "UTF-8";
        $mail->setFrom('username@gmail.com', 'Mailer');
        $mail->addAddress($email);               // Name is optional
        $mail->addReplyTo('to@gmail.com', 'to');                                 // Set email format to HTML
        $mail->Subject = 'subject';
        $mail->Body    = 'body'
        $mail->send();
        echo '<script>alert("already send");</script>'; 
    } 
    catch (Exception $e) {
        echo "<script>alert('error');</script>";
        echo !extension_loaded('openssl')?"Not Available":"Available";
        exit;
    }
}
?>

网络问题。防火墙正在阻止这些端口。令人惊讶的是,它也阻塞了SSL端口。一旦你解决了这个问题,你就可以走了。或者,您可以将SMTP服务器上的端口更改为提供商允许您使用的自定义端口(25000、25252等)。

网络问题。防火墙正在阻止这些端口。令人惊讶的是,它也阻塞了SSL端口。一旦你解决了这个问题,你就可以走了。或者,您可以将SMTP服务器上的端口更改为提供商允许您使用的自定义端口(2500025252等)。

我使用的是Linode服务器,他们阻止了端口25465587,因此我无法发送邮件和telnet SMTP.gmail.com。

我正在使用Linode服务器,他们阻止了端口25465587,因此我无法发送邮件和telnet smtp.gmail.com。

这不是php问题,而是网络问题……对于SSL,您的配置可能更像这样?为什么要使用IP地址而不是smtp.gmail.com?我说我一开始尝试了这两种地址不是php问题,而是网络问题……也许SSL的配置应该更像这样?你为什么要用IP地址而不是smtp.gmail.com?我说我一开始就试过这两个地址。它们为你启用了吗?它们为你启用了吗?