Подтвердить что ты не робот

Отладка 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();
?>

И вот что я получаю:

Ошибка отправки сообщений Не удалось создать почтовую функцию.

Что, по меньшей мере, озадачивает. Есть ли что-нибудь, что я могу сделать, чтобы получить хотя бы более значимые ошибки? Почему код из класса отображается в моем файле?

4b9b3361

Ответ 1

Похоже, файл class.phpmailer.php поврежден. Я бы загрузил последнюю версию и повторил попытку.

Я всегда использовал функцию SMTP-сервера phpMailer:

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

И если вам нужна информация об отладке:

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