por - Enviar correo electrónico desde localhost ejecutando XAMMP en PHP usando el servidor de correo GMAIL
phpmailer desde localhost (9)
Intento enviar un correo electrónico desde localhost a mi cuenta de correo electrónico yahoo utilizando la función php mail (), la devolución dice que envié el correo con éxito, pero no recibí ningún correo electrónico. He estado leyendo y probando muchas de las llamadas ''formas simples'' de enviar correos electrónicos, pero el resultado es decepcionante, ninguno de ellos funciona para mí. A continuación se muestran el código, las configuraciones y el mensaje de error. ¿Alguien puede iluminarme con esto? Gracias.
código php
<?php
$to = ''[email protected]'';
$subject = ''Fake sendmail test'';
$message = ''If we can read this, it means that our fake Sendmail setup works!'';
$headers = ''From: [email protected]'' . "/r/n" .
''Reply-To: [email protected]'' . "/r/n" .
''X-Mailer: PHP/'' . phpversion();
if(mail($to, $subject, $message, $headers)) {
echo ''Email sent successfully!'';
} else {
die(''Failure: Email was not sent!'');
}
?>
Configuración para php.ini (estoy usando el servidor de correo gmail)
SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = [email protected]
sendmail_path = "/" C: / xampp / sendmail / sendmail.exe / "-t"
Configuración para sendmail.ini
smtp_server = smtp.gmail.com
smtp_port = 587
smtp_ssl = tls
error_logfile = error.log
debug_logfile = debug.log
[email protected]
auth_password = mypassword
[email protected]
mensaje de error en el registro de errores de sendmail con el puerto 587
13/10/02 13:36:41: primero debe emitir un comando STARTTLS. k4sm129639pbd.11 - gsmtp
La forma más simple es usar PHPMailer y Gmail SMTP. La configuración sería como la siguiente.
require ''PHPMailer/PHPMailerAutoload.php'';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = ''smtp.gmail.com'';
$mail->SMTPAuth = true;
$mail->Username = ''Email Address'';
$mail->Password = ''Email Account Password'';
$mail->SMTPSecure = ''tls'';
$mail->Port = 587;
El script de ejemplo y el código fuente completo se pueden encontrar desde aquí - Cómo enviar correos electrónicos desde Localhost en PHP
No olvides generar una segunda contraseña para tu cuenta de Gmail. Usará esta nueva contraseña en su código. Lee esto:
https://support.google.com/accounts/answer/185833
En la sección "Cómo generar una contraseña de la aplicación", haga clic en "Contraseñas de la aplicación", luego en "Seleccionar aplicación", seleccione "Correo", seleccione su dispositivo y haga clic en "Generar". Su segunda contraseña se imprimirá en la pantalla.
PRUEBA ESTO. FUNCIONA PARA MI SIEMPRE.
$config[''protocol''] = ''smtp'';
$config[''smtp_host''] = ''ssl://smtp.gmail.com'';
$config[''smtp_port''] = ''465''; //ssl
$config[''smtp_timeout''] = ''7'';
$config[''smtp_user''] = ''[email protected]'';
$config[''smtp_pass''] = ''pentium409'';
$config[''charset''] = ''utf-8'';
$config[''newline''] = "/r/n";
$config[''mailtype''] = ''html'';
$config[''validation''] = TRUE;
Verifica tu spam. La función mail () a veces envía el correo al correo no deseado.
en el archivo php.ini, descomente este
sendmail_path = "/"C:/xampp/sendmail/sendmail.exe/" -t"
;sendmail_path="C:/xampp/mailtodisk/mailtodisk.exe"
y en sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=465
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=yourpassword
[email protected]
hostname=localhost
configure este ... funcionará ... funciona bien para mí.
Gracias.
Here''s el enlace que me da la respuesta:
[Instalar] el " falso sendmail para windows ". Si no está utilizando XAMPP, puede descargarlo aquí: http://glob.com.au/sendmail/sendmail.zip
[Modify] the php.ini file to use it (commented out the other lines): [mail function] ; For Win32 only. ; SMTP = smtp.gmail.com ; smtp_port = 25 ; For Win32 only. ; sendmail_from = <e-mail username>@gmail.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). sendmail_path = "C:/xampp/sendmail/sendmail.exe -t"
(ignore el bit "Unix only", ya que en realidad estamos usando sendmail)
Luego debe configurar el archivo "sendmail.ini" en el directorio donde se instaló sendmail:
[sendmail] smtp_server=smtp.gmail.com smtp_port=25 error_logfile=error.log debug_logfile=debug.log auth_username=<username> auth_password=<password> force_sender=<e-mail username>@gmail.com
Para acceder a una cuenta de Gmail protegida por verificación de 2 factores, deberá crear una contraseña específica de la aplicación . ( source )
Primero configure el archivo php.ini que se encuentra en su xampp / php para
[función de correo]; XAMPP: Comente esto si desea trabajar con un servidor SMTP como Mercury SMTP = smtp.gmail.com
smtp_port = 25
; Solo para Win32.
; http://php.net/sendmail-from
sendmail_from = [email protected]
sendmail_path = "/" C: / xampp / sendmail / sendmail.exe / "-t -i"
eliminar el punto y coma antes de sendmail desde y sendmailpath
después de configurar el archivo sendmail.ini que se encuentra en la carpeta sendmail, puede buscar en la carpeta xampp y hacer esto:
[enviar correo]
smtp_server = smtp.gmail.com
smtp_port = 587
smtp_ssl = auto
default_domain = localhost
error_logfile = error.log
[email protected]
auth_password = yourgmailpassword
pop3_server =
pop3_username =
pop3_password =
[email protected]
force_recipient =
nombre de host = localhost
luego usa la función de correo
me gusta
mail ("[email protected]", "Success", "Send mail from localhost using PHP");
en php guardar archivo como email.php lo último es asegurarse de que la verificación en dos pasos esté desactivada en su cuenta de Gmail; de lo contrario, no recibirá correo ni configuración de Gmail > ** Reenvío y POP / IMAP habilitan cambios de imap y guardado y, por último, desactivar la aplicación de conexiones menos seguras
Ve a divertirte
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=gmailpassword
[email protected]
es necesario autenticar el nombre de usuario y la contraseña del correo y solo una vez puede enviar correos desde el servidor local
require_once "Mail.php";
$from = ''<from.gmail.com>'';
$to = ''<to.yahoo.com>'';
$subject = ''Hi!'';
$body = "Hi,/n/nHow are you?";
$headers = array(
''From'' => $from,
''To'' => $to,
''Subject'' => $subject
);
$smtp = Mail::factory(''smtp'', array(
''host'' => ''ssl://smtp.gmail.com'',
''port'' => ''465'',
''auth'' => true,
''username'' => ''[email protected]'',
''password'' => ''passwordxxx''
));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo(''<p>'' . $mail->getMessage() . ''</p>'');
} else {
echo(''<p>Message successfully sent!</p>'');
}