2010-02-09 5 views
9

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

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 = "[email protected]"; 
     $mail->Password = "xxxxxxxx"; 
     $mail->From = "[email protected]"; 
     $mail->FromName = "Mailer"; 
     $mail->AddAddress("[email protected]", "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"; 

     ?> 
+0

вам нужно безопасное соединение, не так ли? –

ответ

14

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

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

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

+0

Я пробовал использовать функцию PHp mail, но это тоже не почта. – user2480288

1

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

+2

smtp.gmail.com является правильным. – Shoban

+0

О, я извиняюсь :) – Young

2

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

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

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

+0

разговор не почта, не так ли? – hakre

17

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

SSL = 465 TLS = 587

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

+0

Этот ответ ... это тот, который, наконец, работал для меня после многого устранения неполадок. Спасибо, сэр. – Joel

5

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

8

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

2

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

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

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

3

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

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, a.k.a. 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 = "[email protected]"; 

    //Password to use for SMTP authentication 
    $mail->Password = "admin123"; 

    $mail->setFrom('[email protected]', 'development'); //add sender email address. 

    $mail->addAddress('[email protected]', "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!"; 
    } 
+0

$ mail-> SMTPSecure = 'ssl'; сделал для меня разницу, спасибо! –

+0

@ Cyrille Armanger принять ответ, если он работает :) заранее спасибо – Priyank

+0

Я не оригинальный плакат, это просто помогло мне. –

2

Если бы тот же вопрос, Изменить порт Нет в настройке почты OpenCart 587 и работает отлично

+0

Это сработало для меня. – herrmartell