php - para - Enviar correo electrónico desde localhost con gmail(windows)
smtp gmail (3)
Asegúrese de que el paquete de correo PEAR esté instalado.
<?php
require_once "Mail.php";
$from = "Sandra Sender <[email protected]>";
$to = "Ramona Recipient <[email protected]>";
$subject = "Hi!";
$body = "Hi,/n/nHow are you?";
$host = "mail.example.com";
$username = "smtp_username";
$password = "smtp_password";
$headers = array (''From'' => $from,
''To'' => $to,
''Subject'' => $subject);
$smtp = Mail::factory(''smtp'',
array (''host'' => $host,
''auth'' => true,
''username'' => $username,
''password'' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>
O puede utilizar una clase de php de terceros para enviar correos. como PHPMailer que es mucho más fácil
Quiero usar la función mail () de mi host local. Tengo instalado WAMP y una cuenta de Gmail. Sé que el SMTP para Gmail es smtp.gmail.com y el puerto es 465. ¿Qué necesito configurar en WAMP para poder usar la función mail ()? Gracias
La respuesta de Ayush fue muy útil, por debajo de un enfoque ligeramente simplificado.
1) Descargar PHPMailer
2) Extraer a la carpeta dentro de su proyecto php y cambiarle el nombre a phpmailer
3) Crea gmail-sample.php y pega el siguiente código:
<?php
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
// ---------- adjust these lines ---------------------------------------
$mail->Username = "[email protected]"; // your GMail user name
$mail->Password = "your-gmail-password";
$mail->AddAddress("[email protected]"); // recipients email
$mail->FromName = "your name"; // readable name
$mail->Subject = "Subject title";
$mail->Body = "Here is the message you want to send to your friend.";
//-----------------------------------------------------------------------
$mail->Host = "ssl://smtp.gmail.com"; // GMail
$mail->Port = 465;
$mail->IsSMTP(); // use SMTP
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->From = $mail->Username;
if(!$mail->Send())
echo "Mailer Error: " . $mail->ErrorInfo;
else
echo "Message has been sent";
?>
4) Enviar correo desde el navegador (por ejemplo, http://localhost/your-project/gmail-sample.php ).
Solía obtener el "Error de SMTP: No se pudo conectar al host SMTP".
Este error se debe a XAMPP (1.7.7) y su servidor Apache, cuya opción "SSL" no está habilitada de forma predeterminada. Así que tenemos que habilitarlo nosotros mismos.
¿Qué hacer? En el archivo PHP.ini de su XAMPP, debe agregar la siguiente extensión (que no está escrita ni comentada): extension=php_openssl.dll
Guarde el archivo php.ini, reinicie su servidor apache y ... ¡disfrútelo!
Personalmente funciona con:
Port = 465
Host = smtp.gmail.com
SMTPAuth = true
SMTPDebug = 1
SMTPSecure = ''ssl''