2010-02-09 13 views
9

Intenté utilizar el envío de correo de php, pero los errores fueron los siguientes.Error de correo de 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. 

y mi código

<?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

necesita una conexión segura, ¿no? –

Respuesta

14

Algunos servidores (especialmente alojamiento compartido) le bloquear el uso de SSL con SMTP, he tenido el mismo problema de una vez.

Cambie el host si puede, intente utilizar la función de correo PHP() predeterminada o envíe a través de otro servidor de correo que no requiera SSL, p. Ej. puerto 25 no 465.

Algo así como AuthSMTP sería su mejor opción para un servidor de correo alternativo.

+0

Intenté usar la función de correo de PHp pero también el correo no se estaba enviando. – user2480288

1
no

seguro, pero tratan $mail->Host = "smtp.gmail.com" =>$mail->Host = "smtp.google.com"

+2

smtp.gmail.com es correcto. – Shoban

+0

oh lo siento :) – Young

2

puede ser debido a la pared de fuego?

Si no puede acceder a Google Talk, o que está recibiendo un error que dice , no se pudo autenticar a servidor, compruebe si tiene instalado el software de servidor de seguridad personal , o si su la computadora está detrás de un servidor proxy que requiere un nombre de usuario y contraseña.

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

+0

hablar no es correo, ¿o no? – hakre

5

Si está trabajando en su servidor local sólo tiene que ir a la PHP Extensión y activar o comprobar el php_openssl será capaz de acceder a los puertos SSL.

8

Tuve los mismos problemas, parece que tenemos para establecer el valor de SMPTSecure. Primero cambié el puerto de 465 a 587 y agregué:
$ mail-> SMTPSecure = "tls"; y funcionó :)

2

Uso el mismo script para varios clientes y solo encuentro este problema al implementarlo en los proveedores de Amazon EC2 en la nube (como Openshift).

Estos son ajustes probados en phpmailer: $ mail-> SMTPSecure = "tls"; // establece el prefijo al servier $ mail-> Host = "smtp.gmail.com"; // establece GMAIL como el servidor SMTP $ mail-> Port = 587;

'pero' Google bloquea estos servicios como una maniobra 'antispam/política', y esto me ha sorprendido porque funciona localmente y en la mayoría de los proveedores de hosting, no hay mucho que puedas hacer cuando no lo hacen aceptar mensajes de salida de sus hosts DNS/IP. Acéptelo y continúe buscando otro servidor smtp para enrutar los mensajes.

3

probar este código

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'; hizo la diferencia para mí, gracias! –

+0

@ Cyrille Armanger acepta la respuesta si es trabajo :) gracias de antemano – Priyank

+0

No soy el póster original, simplemente me ayudó. –

2

tenía el mismo problema, cambie el puerto n en la configuración de correo opencart a 587 y funciona bien

+0

Esto funcionó para mí. – herrmartell

Cuestiones relacionadas