2017-06-26 24 views
1

私たちはPHPMailerを使用しています。サーバーは、ローカルSMTPを使用するように構成されています。 だから、一般のphpmailerののコマンドーは次のようになります。PHP5.6以降PHPMailer SMTPローカルホスト、証明書エラー

$mail = new PHPMailer(); 
$mail->From = '[email protected]'; 
$mail->Host = 'localhost'; 
$mail->IsSMTP(); 
... 

証明書が一致しないため、これは、もう動作しません。私が使用してこのエラーを抑制することができる

Warning: stream_socket_enable_crypto(): Peer certificate CN='*.thisvps.com' did not match expected CN='localhost' in /ho...PHPMailer_latest/class.smtp.php

:私たちは、次のエラーを取得する

$this->smtpConnect([ 
    'ssl' => [ 
     'verify_peer' => false, 
     'verify_peer_name' => false, 
     'allow_self_signed' => true 
    ] 
]); 

しかし、正しい方法が行きということでしょうか?私はエラーを抑制する大きなファンではない;)。 設定に誤りがありますか?

バージョン情報: PHP 5.6.30、 phpmailerの:5.2.21

任意の提案は、事前に感謝歓迎します!

答えて

2

あなたが設定したものでなければ、サーバーからその証明書を取得しているのは奇妙です。それはあなたのトラフィックをリダイレクトするあなたのISPになる可能性がありますが、私はそれがlocalhostに影響することは期待しません。また、あなたのサーバがSTARTTLSをアドバタイズした場合、それは自動的に再有効化されるのを防ぐために$mail->SMTPAutoTLS = false;を設定する必要があるかもしれませんが

あなたは、$mail->SMTPSecure = false;と(それが外部ネットワークトラフィックはありませんとしてlocalhostに安全です)完全に暗号化をオフにすることができます。

また、このホストにはおそらく使用可能なホスト名がthisvps.comであり、その名前がcertと一致している可能性があります。

+0

ホスト名(x.thisvps.nl)に関しては、SMTP接続の証明書がインストールされています。その前に、証明書がインストールされていないというエラーがあったためです。 PHPmailerのデバッグ情報を見ると、x.thisvps.nlへの接続のようです(localhostをホスト名などに変換することによって可能です)。しかし運がない..あなたの答えをありがとう!私は保存されているので、今はSMTPのセキュリティを無効にします。 – sanderbee

関連する問題