Когда я пытался отправить почту с помощью phpmailer, я получаю сообщение об ошибке - PullRequest
0 голосов
/ 18 февраля 2020

Не удалось создать экземпляр почтовой функции.
Сообщение не может быть отправлено. Ошибка продавца: Не удалось создать экземпляр почтовой функции.

require 'PHPMailer/PHPMailerAutoload.php';
$mail =new PHPMailer;
$mail->HOST ='localhost';
$mail->PORT = 25;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Username = 'Username';
$mail->Password = 'Pass';
$mail->setFrom('info@zoeticpolymers.com');
$mail->addAddress('nitesh54546@gmail.com','Nitesh');
$mail->AddReplyTo("info@zoeticpolymers.com");
$mail->isHTMl(true);
$mail->Subject = 'PHP Mailer Subject';
$mail->Body = '<h1>You are Welcome Here.....</h1>';
if(!$mail->send()){
    echo 'Message couldnot be sent'; 
     echo 'Mailer Error: ' . $mail->ErrorInfo; die;
}else{
    echo 'Message has been sent'; die;
}

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Вы пробовали с smtp ? Причина Не удалось создать экземпляр почтовой функции Ошибка может быть вызвана несколькими причинами. когда вы пытаетесь отправить большие электронные письма, а ваш PHP журнал ошибок содержит сообщение Не удается отправить сообщение: слишком большое , тогда ваш агент пересылки почты (Sendmail, postfix, Exim, et c) отказывается доставить эти электронные письма.

Решение состоит в том, чтобы настроить адаптер MTA, чтобы разрешать вложения большего размера. Но это не всегда возможно. Альтернативное решение заключается в использовании SMTP. Вам потребуется доступ к SMTP-серверу (и учетные данные для входа, если ваш SMTP-сервер требует аутентификации), рассмотрите приведенный пример.

$mail->IsSMTP();
$mail->Host = "smtp.example.com";
// used only when SMTP requires authentication  
$mail->SMTPAuth = true;
$mail->Username = 'smtp_username';
$mail->Password = 'smtp_password';
0 голосов
/ 18 февраля 2020

Ваша ошибка: Вы использовали HOST в качестве Localhost, это SMTP.mail.com, смена почты на вашем сервере

Вы используете более старую версию PHPMailer, и позвольте мне помочь вам, введя правильную

Вы должны скачать с PHPMailer GitHub Not vendor для этого примера

use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true);

try {
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                     
    $mail->isSMTP();                                   
    $mail->Host = 'smtp.gmail.com';     //for Gmail               
    $mail->SMTPAuth   = true;             

    $mail->Username   = 'user@gmail.com';                   
    $mail->Password   = 'your Gmail pass';              


    $mail->Port       = 587;                                    // TCP port


    $mail->setFrom('from@example.com', 'Mailer');
    $mail->addAddress('joe@example.net', 'Joe User');    


    $mail->isHTML(true);                                  
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}```




**Your error was that you used HOST as localhost and older version of PHPMailer.


But use default mail() but change the PHP version to 7.3 since it's better now.**
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...