1

テスト目的で、WindowsにApache w/phpをインストールしています。また、本番CentOS6.4サーバーにPHP付きのApacheがあります。

PHPMailerを使用して、Windowsサーバーで完全に電子メールを送信できます。ただし、centosサーバーで送信できません。

これは私のコードです:

    require_once('phpmailer/class.phpmailer.php');
    $mail = new PHPMailer();  
    $mail->IsSMTP(); 
    $mail->SMTPDebug = 1;  
    $mail->SMTPAuth = true;
    $mail->Host = 'mail.example.com';
    $mail->Port = 25; 
    $mail->Username = "mail-daemon@example.com";  
    $mail->Password = "secret";
    $mail->SMTPSecure = 'tls';       
    $mail->SetFrom('mail-daemon@example.com', "$name");
    $mail->Subject = "$subj";
    $mail->Body = $body;
    $mail->AddAddress("Support@example.com");
    if(!$mail->Send()) {
        $error = 'Mail error: '.$mail->ErrorInfo; 
        echo "We're sorry, however, an error has occurred. You may manually e-mail us at support@example.com.";
        return false;
    } else {
        echo "Thanks! Your message was successfully sent.";
        return true;
    }
?>

繰り返しますが、それは私のWindowsApachheで完全に機能します。ただし、CentOSでは次のエラーが発生します。

SMTP -> ERROR: Failed to connect to server: Connection timed out (110) <br />The following From address failed: mail-daemon@example.com : Called Mail() without being connected

ファイアウォールをテストしましたが、それが問題だとは思いません。(テストのために)完全にオフにしましたが、それでもエラーが発生していました。

phpにopensslをインストールして有効にしました。

何か案は?

4

1 に答える 1

2

メッセージからわかるのは

  • クライアントがメールサーバーに到達できないこと、または
  • クライアントがすべてのコマンドを送信する前に、しばらくしてメールサーバーが接続を閉じました。

私があなたなら、次のことを順番に試してみます。

  1. mail.example.comにpingを実行して、ドメインを解決できることを確認します。
  2. mail.example.comの25番目のポートにTelnetで接続して、サーバーがメールサーバーに接続できることを確認します。
  3. telnetまたは別のメールクライアントを使用してメールサーバーをテストします。

あなたはそれらのステップの1つで立ち往生するべきであり、それはその問題を解決するのに役立つはずです。

于 2013-03-25T03:18:26.547 に答える