Самое важное, когда вы задаете такой вопрос, это точно описать , как не работает - мы не можем догадаться.
Прежде всего, вы используете очень старую версию PHPMailer, поэтому получает самую последнюю версию и основывает свой код на примере контактной формы, поставляемой с PHPMailer .
Вы отправляете только текстовое содержимое, так что сделайте это:
$mail->isHTML(false);
$mail->Body = $mensagem;
Вам не нужно устанавливать AltBody
, когда вы делаете это.
Если ваше сообщение приходит, но не содержит ожидаемого, сделайте это непосредственно перед вызовом send()
, чтобы подтвердить, какие параметры получил скрипт и что вы просили его отправить:
var_dump($_POST, $mail->Body);
У вас есть SMTPDebug = 2
, поэтому вы должны увидеть отладочную информацию. Если вы получите false
возвращаемое значение от send()
, любая ошибка должна быть в $mail->ErrorInfo
- вы увидите, как это можно использовать в примере кода, с которым я связан.
Если вы не видите вывода отладки SMTP, это означает, что у него вообще проблемы с подключением, и в этом случае вам следует прочитать руководство по устранению неполадок , в котором рассказывается, как диагностировать проблемы с подключением. Обычные причины: ваш хостинг-провайдер может блокировать исходящий SMTP или что у вас устаревшие сертификаты CA.