Когда я пытаюсь отправить почту через PHPMailer, я получаю это сообщение об ошибке. Мой код ниже:
<? require("phpmailer/class.phpmailer.php"); // First we require the PHPMailer libary in our script $mail = new PHPMailer(); // Next we create a new object of the PHPMailer called $mail $mail->From = "rajasekar.kcet@gmail.com"; $mail->FromName = "Rajasekar"; $mail->AddAddress("rajasekar.kcet@gmail.com"); // This is the adress to witch the email has to be send. $mail->Subject = "First PHP Email message"; // This is the subject of the email message. $mail->Body = "Hi! \n\n This is my first e-mail sent through PHP."; // This is the actual email message if(!$mail->Send()) // Now we send the email and check if it was send or not. { echo 'Message was not sent.'; echo 'Mailer error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent.'; } ?>
Узнайте у своего хоста, есть ли у них какие-либо почасовые ограничения на отправку писем.
В CentOS это может быть вызвано политикой SELinux. Выполните следующий код, чтобы увидеть, включен ли он.
getsebool httpd_can_sendmail
Вы можете включить его, вызвав команду ниже. Параметр -P делает его постоянным.
setsebool -P httpd_can_sendmail 1
У меня была такая же ошибка. Ответ был причиной проблемы. Я удалил это.
$email->AddReplyTo( $admin_email, $admin_name );
Просто вернувшись к старому потоку, вы можете подробно отладить PHPMailer, добавив:
print_r(error_get_last());
это выведет для вас точную ошибку, которая приводит к сбою php mail () по умолчанию.
Надеюсь, это кому-нибудь поможет.
«Не удалось создать экземпляр почтовой функции» - это способ PHPMailer сообщать о сбое вызова функции mail () (в расширении Mail). (Таким образом, вы используете почтовую программу «mail».)
Вы можете попробовать удалить @s перед вызовами mail () в PHPMailer :: MailSend и посмотреть, какие ошибки, если таковые имеются, отбрасываются без предупреждения.
Старая тема, но она может помочь кому-то вроде меня. Я решил проблему, установив для SMTP-сервера допустимое значение в PHP.ini
я решил мою проблему (для wamp)
$mail->IsSMTP(); $mail->Host='hote_smtp';
of corse изменить hote_smtp на правильное значение