0

PHPMailer でのメール送信の問題。

これについてかなりの数の質問があることは承知していますが、それらをたくさん読んだ後、そして3日間の無駄な試みの後、私は本当に絶望的です. だから、私はPHPMailer経由でメールを送信しようとしています:

require 'class.phpmailer.php';

$mail = new PHPMailer();
$mail->PluginDir = './';
$mail->IsSMTP();
$mail->Port = 465;
$mail->Host = 'smtp.gmail.com';
$mail->IsHTML(true); 
$mail->Mailer = "smtp";
$mail->SMTPSecure = 'ssl';

$mail->SMTPAuth = true;
$mail->Username = 'myname@gmail.com';
$mail->Password = 'mypassword';

$mail->From = "myname@gmail.com";
$mail->FromName = "MyName";
$mail->addAddress("myname@gmail.com");

$mail->Subject = "Success";
$mail->Body = "Success";

if(!$mail->Send()) echo $mail->ErrorInfo;
else echo "Message has been sent";

このコードをラップトップでテストすると、完全に機能します。ローカルの php と PHPMailer のバージョンは、それぞれ 5.3.5 と 5.2.4 です。このスクリプトを自分の Web サイトにアップロードしようとすると、問題が発生します。ホスティング サーバーの php バージョンは 5.3.3 です。返されるエラーは、「次の差出人アドレスに失敗しました: myname@gmail.com : 接続せずに Mail() を呼び出しました。」以前、自分のマシンでコードをテストしていたときに、このエラーが発生しました。問題は、ssl モジュール (php_openssl.dll) が php.ini に追加されていなかったことです。私はそれを追加し、すべてがうまくいき始めました。当然のことながら、このエラーを見たとき、openssl がホスティング サーバーにロードされていないと思いました。しかし、そうではないことが判明しました - extension_loaded("openssl") は true を返します。また、「openssl」get_loaded_extensions() から返されたロード済みモジュールの配列に含まれています。何が問題なのか分かりますか?

4

0 に答える 0