web-dev-qa-db-ja.com

デバッグPHP Mail()および/またはPHPMailer

PHPスクリプトからのメール送信に問題があります。一部のデータ:

  • 共有ホスティング、SSHアクセスなし、ホスティングプロバイダーパネルのみ
  • PHPバージョン5.2.5
  • 昨年、同じホスティングでメールを送信しても問題のないサイトを構築しました
  • ドメインが「domain.com」であり、私のプライベートアドレスが「[email protected]」であるとします。これは、次のコードでの匿名性のためです。

コードは次のとおりです。

<?php
error_reporting(E_ALL); 
ini_set("display_errors", 1);

$to = "[email protected]";
$subject = "Hi";
$body = "Test 1\nTest 2\nTest 3";
$headers = 'From: [email protected]' . "\r\n" .
    'errors-to: [email protected]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

if (mail($to, $subject, $body, $headers)) {
    echo("Message successfully sent");
} else {
    echo("Message sending failed");
}

require('class.phpmailer.php');
$message = "Hello world";
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
$mail->AddAddress("[email protected]", "Agos");
$mail->SetFrom("[email protected]","My Site");
$mail->Subject = "Test Message";
$mail->Body = $message;
$mail->Send();
?>

そして、ここに私が得るものがあります:

メッセージ送信に失敗しましたメール機能をインスタンス化できませんでした。

控えめに言っても困惑しています。少なくとも意味のあるエラーを取得するためにできることはありますか?クラスのコードがファイルに表示されるのはなぜですか?

26
Agos

Class.phpmailer.phpファイルが破損しているようです。 最新バージョン をダウンロードして、再試行します。

私は常にphpMailerのSMTP機能を使用しています。

$mail->IsSMTP();
$mail->Host = "localhost";

そして、デバッグ情報が必要な場合:

$mail->SMTPDebug  = 2; // enables SMTP debug information (for testing)
                       // 1 = errors and messages
                       // 2 = messages only
44
Stacey Richards