para mail formulario failed enviar ejemplo correo codigo php email smtp phpmailer

formulario - php mail smtp



PHPMailer-ERROR SMTP: el comando de contraseña falló al enviar correo desde mi servidor (8)

Utilicé el concepto phpmailer () para enviar correos electrónicos a los usuarios de mi servidor compartido utilizando el script php, pero no puedo enviarlos aunque todo esté correcto en mi script de acuerdo con el código de phpmailer.

Mi código como este:

$message = " This is testing message from my server"; $mail = new PHPMailer(); // create a new object $mail->IsSMTP(); // enable SMTP $mail->Host = "smtp.gmail.com"; $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only $mail->SMTPAuth = true; // authentication enabled $mail->SMTPSecure = ''ssl''; // secure transfer enabled REQUIRED for GMail $mail->Port = 465; // or 587 $mail->IsHTML(true); $mail->Username = "[email protected]"; // My gmail username $mail->Password = "************"; // My Gmail Password $mail->SetFrom("[email protected]"); $mail->Subject = "Test Mail from my Server"; $mail->Body = $message; $mail->AddAddress($email); if($mail->Send()) { print json_encode("SUCCESS"); } else { echo "Mailer Error: " . $mail->ErrorInfo; }

Nota: He utilizado "GMail" como mi servidor SMTP y SMTPSecure es "ssl" y el puerto es "465" y el nombre de usuario y las contraseñas son mi nombre de usuario y contraseña de GMail.

Utilicé el servidor compartido de VPS y guardé mi script php en ese servidor.

Creo que no hay ningún problema en mi script php y no sé por qué no funciona.

Tengo el ERROR así.

2014-02-21 12:30:11 CLIENT -> SERVER: EHLO jkcorporates.com 2014-02-21 12:30:11 CLIENT -> SERVER: AUTH LOGIN 2014-02-21 12:30:11 CLIENT -> SERVER: bW9vcnRoaS5tcmsxMEBnbWFpbC5jb20= 2014-02-21 12:30:11 CLIENT -> SERVER: OTk0MTI0MTE0MA== 2014-02-21 12:30:11 SMTP ERROR: Password command failed: 534-5.7.14 534-5.7.14 i-_eumA> Please log in via your web browser and then try again. 534 5.7.14 54 k76sm17979938yho.18 - gsmtp 2014-02-21 12:30:11 CLIENT -> SERVER: QUIT " The ERROR is " SMTP connect() failed.

Por favor dame alguna solución para eso.
Gracias por adelantado.

Recuerde: utilizo el nombre de servidor compartido ''VPS.midominio.com'' y quiero usar GMail como mi servidor SMTP para enviar correos a los usuarios.


Como ya han sugerido otros, puede habilitar las aplicaciones "menos seguras" o simplemente puede cambiar de ssl a tls :

$mailer->Host = ''tls://smtp.gmail.com''; $mailer->SMTPAuth = true; $mailer->Username = "[email protected]"; $mailer->Password = "***"; $mailer->SMTPSecure = ''tls''; $mailer->Port = 587;

Al utilizar tls no es necesario otorgar acceso a aplicaciones menos seguras, solo asegúrese de que IMAP esté habilitado.


Este error se debe a más características de seguridad de gmail ...

Una vez que se genera este error ... Inicie sesión en su cuenta de Gmail ... allí puede encontrar alertas de seguridad de GOOGLE ... siga el correo ... marque la opción menos segura ... Luego intente de nuevo con phpmailer.


Me enfrento al mismo problema y creo que sé por qué sucede esto.

La cuenta de Gmail que uso normalmente se usa desde la India, y el servidor web que uso se encuentra en los Países Bajos.

Google notifica que hubo un intento de inicio de sesión desde una ubicación inusual y requiere iniciar sesión desde esa ubicación a través de un navegador web.

Además, tuve que aceptar el acceso sospechoso a la cuenta de Gmail a través de https://security.google.com/settings/security/activity

Pero al final mi problema aún no está resuelto, porque tengo que iniciar sesión en Gmail desde una ubicación en los Países Bajos.

¡Espero que esto te ayude un poco! (Lo siento, no leo las respuestas por correo electrónico en esta dirección de correo electrónico)


Para aquellos que todavía no pueden hacerlo funcionar, intente lo siguiente además del método provisto por @CallMeBob.

PHP.ini

  1. Vaya a C: / xampp / php , edite el archivo php.ini con el bloc de notas.
  2. Presione CTRL + F en su teclado, ingrese sendmail_path en la barra de búsqueda y haga clic en Buscar siguiente dos veces.
  3. En este momento, debes estar en la sección [munición de correo] .

Elimine el punto y coma de esta línea: sendmail_path = "/" C: / xampp / sendmail / sendmail.exe / "-t"
Agregue un punto y coma para esta línea: sendmail_path = "C: / xampp / mailtodisk / mailtodisk.exe"

SendMail.ini

  • Vaya a C: / xampp / sendmail , edite el archivo sendmail.ini con el bloc de notas
  • Cambiar lo siguiente:


Nota:
** smtp_port debe coincidir con los que están escritos en su código php.
** Recuerde cambiar su nombre de usuario de gmail y su contraseña de gmail en la cuenta que esté utilizando.
**


¡Espero que esto ayude! :)


Resolvió el problema - PHPMailer - ERROR SMTP: el comando de contraseña falló al enviar correo desde mi servidor

require_once(''class.phpmailer.php''); include("class.smtp.php"); $nameField = $_POST[''name'']; $emailField = $_POST[''email'']; $messageField = $_POST[''message'']; $phoneField = $_POST[''contactno'']; $cityField = $_POST[''city'']; $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch $mail->IsSMTP(); // telling the class to use SMTP $body .= $nameField; try { //$mail->Host = "mail.gmail.com"; // SMTP server $mail->SMTPDebug = 2; // enables SMTP debug information (for testing) $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->SMTPKeepAlive = true; $mail->Mailer = "smtp"; $mail->Username = "[email protected]"; // GMAIL username $mail->Password = "********"; // GMAIL password $mail->AddAddress(''[email protected]'', ''abc''); $mail->SetFrom(''[email protected]'', ''def''); $mail->Subject = ''PHPMailer Test Subject via mail(), advanced''; $mail->AltBody = ''To view the message, please use an HTML compatible email viewer!''; // optional - MsgHTML will create an alternate automatically $mail->MsgHTML($body); $mail->Send(); echo "Message Sent OK</p>/n"; header("location: ../test.html"); } catch (phpmailerException $e) { echo $e->errorMessage(); //Pretty error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); //Boring error messages from anything else! }

Importante:

Vaya a la configuración de Google y habilite las aplicaciones ''menos seguras''. Funcionará. Funcionó para mí


Si eres usuario de G Suit, puede ser resuelto por el Administrador

  1. Ve a tu Panel de administración
  2. Escriba en la barra de búsqueda superior « Seguridad » (seleccione Seguridad con el ícono Escudo)
  3. Abre la configuración básica
  4. Ir a la sección de aplicaciones menos seguras
  5. Presiona: Ir a configuración para aplicaciones menos seguras >>

Y ahora seleccione uno de Botón de radio a) Desactive el acceso a aplicaciones menos seguras para todos los usuarios (Recomendado) b) Permita a los usuarios administrar su acceso a aplicaciones menos seguras c) Haga cumplir el acceso a aplicaciones menos seguras para todos los usuarios (No recomendado)

Por lo general, no funciona debido a a)! Y comenzará a funcionar inmediatamente con la opción c). b) - la opción necesitará más configuración para cada usuario en GSuit

Espero eso ayude


Un poco tarde, pero tal vez alguien lo encuentre útil.

Enlaces que solucionan el problema (debe haber iniciado sesión en la cuenta de Google):

https://security.google.com/settings/security/activity?hl=en&pli=1

https://www.google.com/settings/u/1/security/lesssecureapps

https://accounts.google.com/b/0/DisplayUnlockCaptcha

Alguna explicación de lo que sucede:

Este problema puede ser causado por aplicaciones "menos seguras" que intentan usar la cuenta de correo electrónico (esto está de acuerdo con la ayuda de Google, no está seguro de cómo juzgan qué es seguro y qué no) O si está intentando iniciar sesión varias veces en un fila O si cambia de país (por ejemplo, use VPN, mueva el código a un servidor diferente o intente iniciar sesión desde otra parte del mundo).

Para resolverlo tuve que: (primera vez)

Esto funcionó la primera vez, pero unas horas más tarde, probablemente porque estaba haciendo muchas pruebas, el problema reapareció y no se puede reparar con el método anterior. Además, tuve que borrar el captcha (la imagen divertida, que le pide que reescriba una palabra o frase al iniciar sesión en muchas cuentas hoy en día muchas veces):

Espero que esto ayude.


Utilizar esta:

https://www.google.com/settings/u/1/security/lesssecureapps https://accounts.google.com/b/0/DisplayUnlockCaptcha https://security.google.com/settings/security/activity?hl=en&pli=1

este enlace permite acceder a la cuenta de google

ACTUALIZACIÓN 19-05-2017:

Estas url debes visitar desde la dirección IP que se enviará por correo electrónico