2011-05-23 14 views
1

メールを送信しようとすると、次のコードでエラーが発生します。私のローカルマシンでは動作しますが、AWS LAMPサーバーには入れません。スクリプトを実行するとHTTP 500エラーが発生するため、何もデバッグできません。しかし、私はPEARがインストールされていることを知っています。PHP PEARメールエラー

コード:

require_once "Mail.php"; 

$from = "Email<[email protected]>"; 
$to = "[email protected]"; 
$subject = "ERROR REPORT"; 
$body = "test message"; 

$host = "ssl://smtp.gmail.com"; 
$port = "465"; 
$username = "[email protected]"; 
$password = "pass1"; 

$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 

$smtp = Mail::factory('smtp', 
array ('host' => $host, 
    'port' => $port, 
    'auth' => true, 
    'username' => $username, 
    'password' => $password)); 


$mail = $smtp->send($to, $headers, $body); 


if (PEAR::isError($mail)) { 
    echo("<p>" . $mail->getMessage() . "</p>"); 
    } else { 
    echo("Error message sent!"); 
} 

これは、上記送信()コマンドでアウト盗聴されているようです。これをよりよくデバッグする方法に関する提案はありますか?

答えて

4

は、以下の2行を試してみてください。

ini_set('display_errors','on'); 
error_reporting(E_ALL); 

は、初期のスクリプトでこれら二つを置くそうでない場合は、エラーを非表示にしますphp.iniの設定をバイパスします。希望が助けてくれる!

また、可能であれば、呼び出されるPHPファイルに配置し、メール機能を使用するファイルを含めることもできます。そうすれば、構文エラーのため上記のコードが動作しないようにすることができます。

+1

ありがとうございました!これはうまくいった。問題はNet_SMTPがインストールされていなかったことです – Steven

0

ウェブサーバーのエラーログをご覧ください。つまり、/var/log/apache2/error.logです。