Ошибка почтовой программы: ошибка SMTP: следующая ошибка SMTP: данные не приняты - PullRequest
4 голосов
/ 13 марта 2009

Следующий код дает сообщение

Mailer Error: SMTP Error: The following SMTP Error: Data not accepted. But when I replace $EmailAdd with a a@yahoo.com. The mail was sent.

Что не так с моим кодом? Я немного новичок в php, особенно в работе с почтой.

$sql1 = "SELECT Email_Address FROM participantable where IDno=$studId";
$result1 = mysql_query($sql1);
while ($row1 = mysql_fetch_assoc($result1)){
    $EmailADD = $row1["Email_Address"];
}

//error_reporting(E_ALL);
error_reporting(E_STRICT);
date_default_timezone_set('America/Toronto');

include("class.phpmailer.php");
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail             = new PHPMailer();
$body             = $mail->getFile('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP();
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server
$mail->Username   = "jsbadiola@gmail.com";  // GMAIL username
$mail->Password   = "********";            // GMAIL password
$mail->AddReplyTo("jsbadiola@gmail.com","Lord Skyhawk");
$mail->From       = "jsbadiola@gmail.com";
$mail->FromName   = "Update";
$mail->Subject    = "PHPMailer Test Subject via gmail";
$mail->Body       = "Hi,<br>This is the HTML BODY<br>";                      //HTML Body
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap   = 50; // set word wrap
$mail->MsgHTML($body);
$mail->AddAddress($EmailADD, "Agta ka");
$mail->AddAttachment("images/phpmailer.gif");             // attachment
$mail->IsHTML(true); // send as HTML

if(!$mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    $status = "Successfully Save!";
    header("location: User_retsched.php?IDno=$studId&status=$status&Lname=$Lname&Fname=$Fname&Course=$Course&Year=$Year");
}

Ответы [ 4 ]

7 голосов
/ 15 мая 2013

В большинстве случаев я видел это сообщение, электронная почта все равно успешно отправляется, но не всегда. Для отладки установите:

$mail->SMTPDebug = true;

Вы можете либо выводить отладочные сообщения, либо регистрировать их, используя error_log():

// 'echo' or 'error_log'
$mail->Debugoutput = 'echo';

Вероятным кандидатом, особенно на сильно загруженном сервере, являются тайм-ауты SMTP:

// default is 10
$mail->Timeout = 60;

class.smtp.php также имеет свойство Timelimit, используемое для чтения с сервера.

4 голосов
/ 08 сентября 2010

Также полезно, если вы не превысили свой дневной лимит отправки сообщений о спаме Googles.

3 голосов
/ 13 марта 2009

проверяет ваш запрос к выходным данным и значению переменной в этой точке скрипта. убедитесь, что он возвращает желаемое значение для $ EmailADD.

сделать var_dump ($ EmailADD, true);

или попытайтесь повторить где-нибудь вывод этого запроса. Если вы на самом деле получаете значение электронной почты из этого запроса, я не понимаю, почему он не должен работать, особенно когда вы упоминаете, что назначение значения работает напрямую; без sql запроса.

0 голосов
/ 13 марта 2009

Попробуйте другой SMTP-сервер? Посмотрите, работает ли это?

Или просто не используйте SMTP-сервер, большинство серверов с PHP также имеют sendmail / postfix, поэтому могут ретранслировать электронную почту сами.

убрать этот бит ...

$mail->IsSMTP();

$mail->SMTPAuth   = true;                  // enable SMTP authentication

$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier

$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server

$mail->Port       = 465;                   // set the SMTP port for the GMAIL server

$mail->Username   = "jsbadiola@gmail.com";  // GMAIL username

$mail->Password   = "alucar";            // GMAIL password
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...