usar servidor gratis enviar cuál correo configurar como php smtp gmail phpmailer

gratis - enviar correo electrónico usando el servidor SMTP de Gmail a través de PHP Mailer



smtp.gmail.com 587 (12)

Abra este Link y seleccione seguir las instrucciones. Los servidores de google bloquean cualquier intento de servidores desconocidos, así que una vez que haga clic en el botón de verificación, todo estará bien.

Me gustaría enviar un correo electrónico usando el servidor SMTP de Gmail a través de PHP Mailer .

este es mi código

<?php require_once(''class.phpmailer.php''); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->CharSet="UTF-8"; $mail->SMTPSecure = ''tls''; $mail->Host = ''smtp.gmail.com''; $mail->Port = 587; $mail->Username = ''[email protected]''; $mail->Password = ''valid password''; $mail->SMTPAuth = true; $mail->From = ''[email protected]''; $mail->FromName = ''Mohammad Masoudian''; $mail->AddAddress(''[email protected]''); $mail->AddReplyTo(''[email protected]'', ''Information''); $mail->IsHTML(true); $mail->Subject = "PHPMailer Test Subject via Sendmail, basic"; $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; $mail->Body = "Hello"; if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; } ?>

pero recibo este siguiente error

Mailer Error: SMTP Error: The following recipients failed: [email protected] SMTP server error: SMTP AUTH is required for message submission on port 587

mi dominio es vatandesign.ir


Anderscc lo tiene correcto. Gracias. Funcionó para mí, pero no al 100%.

Tuve que establecer

$ mail-> SMTPDebug = 0; Establecerlo en 1, puede causar errores especialmente si está pasando algunos datos como json a la página siguiente. Ejemplo: realizar la verificación si se envía un correo electrónico, usando json para pasar datos a través de ajax.

Tuve que bajar la configuración de seguridad de mi cuenta de gmail para deshacerme de los errores: "SMTP connect () failed" y "SMTP ERROR: Password command failed"

Solución: 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 seguidos 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).

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

Nota: Puede ir al siguiente enlace de respuesta de para obtener una referencia más detallada.

https://.com/a/25175234


Así que acabo de resolver mi propio error de "error de conexión SMTP" y quería publicar la solución por si acaso ayuda a alguien más.

Usé el código EXACT que figura en el archivo de ejemplo de PHPMailer gmail.phps. Funcionó simplemente mientras estaba usando MAMP y luego recibí el error de conexión SMTP una vez que lo moví a mi servidor personal.

Todas las respuestas de que leí, y toda la documentación de solución de problemas de PHPMailer dijeron que no era un problema con PHPMailer. Que era un problema de configuración en el lado del servidor. Intenté diferentes puertos (587, 465, 25), probé el cifrado ''SSL'' y ''TLS''. Comprobé que openssl estaba habilitado en mi archivo php.ini. Comprobé que no había un problema con el firewall. Todo revisado, y aún nada.

La solución fue que tuve que eliminar esta línea:

$mail->isSMTP();

Ahora todo funciona. No sé por qué, pero funciona. El resto de mi código se copia y pega del archivo de ejemplo de PHPMailer.


Creo que es un problema de conexión, aquí puedes obtener el código http://skillrow.com/sending-mail-using-smtp-and-php/

include(“smtpfile.php“); include(“saslfile.php“); // for SASL authentication $from=”[email protected]“; //from mail id $smtp=new smtp_class; $smtp->host_name=”www.abc.com“; // name of host $smtp->host_port=25;//port of host $smtp->timeout=10; $smtp->data_timeout=0; $smtp->debug=1; $smtp->html_debug=1; $smtp->pop3_auth_host=””; $smtp->ssl=0; $smtp->start_tls=0; $smtp->localhost=”localhost“; $smtp->direct_delivery=0; $smtp->user=”smtp username”; $smtp->realm=””; $smtp->password=”smtp password“; $smtp->workstation=””; $smtp->authentication_mechanism=””; $mail=$smtp->SendMessage($from,array($to),array(“From:$from”,”To: $to”,”Subject: $subject”,”Date: ”.strftime(“%a, %d %b %Y %H:%M:%S %Z”)),”$message”); if($mail){ echo “Mail sent“; }else{ echo $smtp->error; }


Google trata las cuentas de Gmail de manera diferente según la información de usuario disponible, probablemente para frenar a los spammers.

No pude usar SMTP hasta que hice la verificación del teléfono. Hice otra cuenta para verificar y pude confirmarlo.


No puedo comentar pero sí, eliminar

$mail->isSMTP();

y estarás bien!


Parece que su servidor no puede establecer una conexión con el servidor SMTP de Gmail. Aquí hay algunos consejos para solucionar este problema: 1) compruebe si SSL está configurado correctamente en su PHP (el módulo que lo maneja no está instalado por defecto en PHP. Debe verificar su configuración en phph.ini). 2) compruebe si su firewall permite llamadas salientes al puerto requerido (aquí 465 o 587). Use telnet para hacerlo. Si el puerto no está abierto, entonces necesitarás ayuda de sysdmin para configurar la configuración. ¡Espero que resuelvas esto rápidamente!



También vale la pena señalar que si tiene habilitada la autenticación de dos factores, deberá configurar una contraseña específica de la aplicación para usar en lugar de la contraseña de su cuenta de correo electrónico.

Puede generar una contraseña específica de la aplicación siguiendo estas instrucciones: https://support.google.com/accounts/answer/185833

Luego configure $mail->Password para la contraseña específica de su aplicación.


este código funciona bien para mí

$mail = new PHPMailer; //Enable SMTP debugging. $mail->SMTPDebug = 0; //Set PHPMailer to use SMTP. $mail->isSMTP(); //Set SMTP host name $mail->Host = $hostname; //Set this to true if SMTP host requires authentication to send email $mail->SMTPAuth = true; //Provide username and password $mail->Username = $sender; $mail->Password = $mail_password; //If SMTP requires TLS encryption then set it $mail->SMTPSecure = "ssl"; //Set TCP port to connect to $mail->Port = 465; $mail->From = $sender; $mail->FromName = $sender_name; $mail->addAddress($to); $mail->isHTML(true); $mail->Subject = $Subject; $mail->Body = $Body; $mail->AltBody = "This is the plain text version of the email content"; if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo ''Mail Sent Successfully''; }


$mail->SMTPOptions = array( ''ssl'' => array( ''verify_peer'' => false, ''verify_peer_name'' => false, ''allow_self_signed'' => true ) );


$mail = new PHPMailer(); // create a new object $mail->IsSMTP(); // enable SMTP $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->Host = "smtp.gmail.com"; $mail->Port = 465; // or 587 $mail->IsHTML(true); $mail->Username = "[email protected]"; $mail->Password = "password"; $mail->SetFrom("[email protected]"); $mail->Subject = "Test"; $mail->Body = "hello"; $mail->AddAddress("[email protected]"); if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message has been sent"; }

Este código anterior ha sido probado y trabajado para mí.

Podría ser que necesitó $mail->SMTPSecure = ''ssl'';

Además, asegúrese de que no haya activado la verificación en dos pasos para esa cuenta, ya que eso también puede causar problemas.

ACTUALIZADO

Puede intentar cambiar $ mail-> SMTP a:

$mail->SMTPSecure = ''tls'';

Vale la pena señalar que algunos servidores SMTP bloquean las conexiones. Algunos servidores SMTP no admiten conexiones SSL (o TLS ).