2015-03-17 5 views
0

У меня проблема, с моим кодом ниже я получаю это сообщение об ошибке: Сообщение не может быть отправлено. Ошибка отправителя: Ошибка SMTP: Не удалось получить следующие получатели:! Censored!PHPmailer не работает получатель

Я просмотрел Host, Порт, Имя пользователя, Пароль, Получатель и все правильно, в чем проблема? Спасибо!

Не могли бы вы объяснить слишком Потому что Im новой для PHP-кодирования

<?php 
require 'PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

$name = $_POST['name']; 
$email = $_POST['email']; 
$subject = $_POST['amne']; 
$message = $_POST['message']; 

//$mail->SMTPDebug = 3;        // Enable verbose debug output 

$mail->isSMTP();          // Set mailer to use SMTP 
$mail->Host = '!Censored!'; // Specify main and backup SMTP servers 
$mail->SMTPAuth = true;        // Enable SMTP authentication 
$mail->Username = '!Censored!';     // SMTP username 
$mail->Password = '!Censored!';       // SMTP password 
$mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
$mail->Port = 587;         // TCP port to connect to 

$mail->From = $email; 
$mail->FromName = $name; 
$mail->addAddress('!Censored!');  // Add a recipient 

$mail->addAttachment('/var/tmp/file.tar.gz');   // Add attachments 
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name 
$mail->isHTML(true);         // Set email format to HTML 

$mail->Subject = $subject; 
$mail->Body = $message; 
$mail->AltBody = $message; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 

EDIT: Я нашел эту проблему, проблема не в самом PHP коде. Он был в контактной форме. Проблема возникла, когда я поставил переменные в виде имен и писем. Если письмо не проверено, оно не работает.

+0

Поскольку вы не хотите, чтобы показать адрес электронной почты, имя пользователя и пароль (который прекрасно, кстати), не могли бы вы перепроверить, что они правы, просто чтобы сделать что проблема связана с самим кодом? –

+0

Попробуйте установить $ mail-> SMTPSecure = 'tls'; to $ mail-> SMTPSecure = 'ssl'; – Joci93

+0

Нет, не переключайтесь на 'tls'. Установите '$ mail-> SMTPDebug = 2;', и вы увидите протокол SMTP, который, вероятно, скажет вам, что случилось. Вы также должны прочитать [документы по устранению неполадок] (https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting). – Synchro

ответ

1

Эта ошибка может быть вызвана несколькими различными факторами. Вы можете получить более полное представление о причине, добавив следующую строку в PHPMailer сценария:

$mail->SMTPDebug = 2; //<-- For debugging 

После того, как вы сделаете это, вы можете проверить следующие вещи, которые могут быть причиной ошибки:

1.) Коррумпированный файл class.phpmailer.php.

2.) Ошибка может быть вызвана защитой, установленной вашим провайдером. Проконсультируйтесь с ними.

3.) Это может быть проблема с адресами адресатов получателя/отправителя.

4.) Установите SMTPAuth в true для класса PHPMailer.

5.) Прокомментируйте следующую строку в скрипте PHPMailer: $ mail-> isSMTP();

В основном, есть вероятность, что файл класса phpmailer поврежден.

Скачать последнюю версию: https://github.com/PHPMailer/PHPMailer

+0

Замечание 'isSMTP' не является исправлением, оно просто перемещает проблему. – Synchro

+0

Эй, у меня нет SMTPDebug 2, и я получаю это сообщение об ошибке: '2015-03-17 20:22:47 SMTP ERROR: Не удалось подключиться к серверу: (0) 2015-03-17 20:22:47 SMTP сбой соединения. Сообщение не может быть отправлено. Ошибка отправителя. Ошибка SMTP connect(). «И мой порт, и хост правильно, поэтому я не знаю, в чем проблема ... – SwegreDesigns

+0

Когда я изменил его на «tls», это получилось: 'Адрес получателя отклонен: Access denied 2015-03-17 20:28:31 SMTP ERROR: команда RCPT TO не выполнена: 450 4.7.1: адрес получателя отклонен: доступ запрещен 2015-03-17 20:28:31 КЛИЕНТ -> СЕРВЕР: QUIT 2015-03-17 20:28:31 SERVER -> КЛИЕНТ: 221 2.0.0 Bye 2015-03-17 20: 28: 31' – SwegreDesigns