Ошибка почтовой программы PHP

Я попытался использовать php-почерк, но ошибки следующим образом.

SMTP -> FROM SERVER: SMTP -> FROM SERVER: SMTP -> ERROR: EHLO not accepted from server: SMTP -> FROM SERVER: SMTP -> ERROR: HELO not accepted from server: SMTP -> ERROR: AUTH not accepted from server: SMTP -> NOTICE: EOF caught while checking if connectedSMTP Error: Could not authenticate. Message could not be sent. Mailer Error: SMTP Error: Could not authenticate. 

и мой код

  <?php require("class.phpmailer.php") $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Host = "smtp.gmail.com"; $mail->Port = 465; $mail->SMTPAuth = true; $mail->SMTPDebug = 2; $mail->Username = "admin@xxxxxxxxxxxx.in"; $mail->Password = "xxxxxxxx"; $mail->From = "admin@xxxxxxxxxxxx.in"; $mail->FromName = "Mailer"; $mail->AddAddress("xxxx@yahoo.co.in", "mine"); $mail->WordWrap = 50; $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"; if(!$mail->Send()) { echo "Message could not be sent. <p>"; echo "Mailer Error: " . $mail->ErrorInfo; exit; } echo "Message has been sent"; ?> 

Некоторые серверы (особенно общий хостинг) заблокируют вас от использования SSL с SMTP, у меня была одна и та же проблема.

Если вы можете изменить хост, попробуйте использовать функцию PHP mail () по умолчанию или отправить другой почтовый сервер, который не требует SSL, например, порт 25, а не 465.

Что-то вроде AuthSMTP было бы лучшим выбором для альтернативного почтового сервера.

Я получал это из-за неправильного порта для SSL.

SSL = 465 TLS = 587

См. http://mail.google.com/support/bin/answer.py?hl=ru&answer=13287.

У меня были те же проблемы, кажется, что мы должны установить значение SMPTSecure. Сначала я изменил порт с 465 до 587 и добавил:
$ mail-> SMTPSecure = "tls"; и это сработало 🙂

Если вы работаете в своем локальном хосте, просто перейдите к расширению PHP и включите или проверьте php_openssl, он сможет получить доступ к портам SSL.

попробуйте этот код

 require 'PHPMailerAutoload.php'; //Create a new PHPMailer instance $mail = new PHPMailer(); //Tell PHPMailer to use SMTP $mail->IsSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages //$mail->SMTPDebug = 2; //Ask for HTML-friendly debug output //$mail->Debugoutput = 'html'; //Set the hostname of the mail server $mail->Host = 'smtp.gmail.com'; //Set the SMTP port number - 587 for authenticated TLS, aka RFC4409 SMTP submission $mail->Port = 465; //Set the encryption system to use - ssl (deprecated) or tls $mail->SMTPSecure = 'ssl'; //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication - use full email address for gmail $mail->Username = "admin@gmail.com"; //Password to use for SMTP authentication $mail->Password = "admin123"; $mail->setFrom('admin3@gmail.com', 'development'); //add sender email address. $mail->addAddress('admins@gmail.com', "development"); //Set who the message is to be sent to. //Set the subject line $mail->Subject = $response->subject; //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body $mail->Body = 'Name: '.$data['name'].'<br />Location: '.$data['location'].'<br />Email: '.$data['email'].'<br />Phone:'.$data['phone'].'<br />ailment: '.$data['ailment'].'<br />symptoms: '.$data['symptoms']; //Replace the plain text body with one created manually $mail->AltBody = 'This is a plain-text message body'; //Attach an image file //$mail->addAttachment('images/phpmailer_mini.gif'); //$mail->SMTPAuth = true; //send the message, check for errors if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; } 

Может быть, из-за пожарной стены?

Если вы не можете войти в Google Talk или получаете сообщение об ошибке: не удалось выполнить проверку подлинности на сервере, проверьте, установлено ли у вас персональное программное обеспечение брандмауэра, или если ваш компьютер находится за прокси-сервером, для которого требуется имя пользователя и пароль.

http://www.google.com/support/talk/bin/answer.py?hl=en&answer=30998

Я использую один и тот же сценарий для нескольких клиентов и сталкиваюсь с этой проблемой при развертывании в облачных провайдерах Amazon EC2 (таких как Openshift).

Это проверенные и проверенные настройки в phpmailer: $ mail-> SMTPSecure = "tls"; // устанавливает префикс для servier $ mail-> Host = "smtp.gmail.com"; // устанавливает GMAIL как SMTP-сервер $ mail-> Port = 587;

', но Google блокирует эти сервисы как «антиспам» / политический маневр, и это меня охватило, потому что оно работает локально и на большинстве хостинг-провайдеров, вы ничего не можете сделать, когда они не принимают исходящие сообщения от ваши хосты DNS / IP. Примите его и перейдите к поиску другого SMTP-сервера для маршрутизации сообщений.

Имел ту же проблему, изменил порт No в opencart почтовой настройке на 587 и отлично работает

не уверен, но попробуйте $mail->Host = "smtp.gmail.com" =>$mail->Host = "smtp.google.com"