не удалось создать экземпляр функции почты - PullRequest
2 голосов
/ 19 апреля 2011

На этом разрываюсь.

У меня есть внутренний сервер Win2008, работающий на IIS7.0 и PHP 5.2.4.Сервер электронной почты находится на отдельном сервере в той же сети.

Я могу использовать почтовую функцию php для отправки писем без проблем, но когда я использую PHPMailerLite, я получаю сообщение «Не удалось создать экземпляр почтовой функции».

Я много исследовал и пробовал следующее, но все еще не радует.

  1. SetFrom - изменил это на существующий адрес электронной почты на почтовом сервере.
  2. Проверено SMTPнастройки в php.ini
  3. Проверка работоспособности почтовой функции php и отправка электронной почты без проблем.
  4. Повторно загрузил PHPMailer в случае повреждения......

    Alan

    Чтобы добавить, примеры по умолчанию, включенные в PHPMailer, тоже не работают, та же ошибка.Этот код работает на других тестовых серверах для меня.

    $mail             = new PHPMailerLite();
    $mail->IsMail(); // telling the class to use PHP Mail to send email
    $mail->SetFrom("CareSys@localdomain.ie","CareSys");
    $mail->AddReplyTo("CareSys@localdomain.ie","CareSys");
    $mail->Subject    = "Weekly Planner";
    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
    $mail->MsgHTML($body);
    $mail->AddAddress($email_add, $carer_name);
    $mail->AddAttachment('../../temp/carer_planner.pdf','carer_planner.pdf');      // attachment
    $mail->ConfirmReadingTo = 'info@localdomain.ie';
    if(!$mail->Send()) { $error_count=1; }
    
    if ($error_count<1) { echo 'Email Sent Successfully'; }
    

    Если я поместил адрес получателя непосредственно в файл класса в строке 582 вместо $ в vairable, он работает.Но использование $ mail-> AddAddress ($ email_add, $ carer_name) будет невозможно, даже если я заменим переменную $ email_add адресом получателя.

Ответы [ 3 ]

0 голосов
/ 22 августа 2011

Попробуйте использовать SMTP для отправки электронной почты: -

$mail->IsSMTP();
$mail->Host = "smtp.example.com";    

// optional
// used only when SMTP requires authentication  
$mail->SMTPAuth = true;
$mail->Username = 'smtp_username';
$mail->Password = 'smtp_password';
0 голосов
/ 27 февраля 2016

Это сработало для меня

$mail->SetFrom("CareSys@localdomain.ie","CareSys", 0); //notice the third parameter
0 голосов
/ 29 мая 2011

Этот класс пытается отправить сообщение через программу sendmail, которая не использует функцию php mail.Убедитесь, что вы можете запускать программы из PHP через функции exec / system, и что вы можете запускать программу sendmail из PHP.Функции exec / system / passthru / popen могут быть отключены администратором вашего сервера, или ваша среда php может быть заключена в тюрьму и вообще не может получить доступ к программе sendmail.

...