Requisitos:
- PHP
- MySQL
- PHPMailer
¿Que es PHPMailer?
Es una librería que permite poder enviar correos electrónicos de forma fácil, simple y efectiva desde correos SMTP, GMAIL o desde nuestro propio servidor de correo electrónico. Puedes descargar dicha librería aquí: https://github.com/Synchro/PHPMailerEjemplo básico:
- Crear la base de datos:
- Llenar la base de datos.
- Descargamos desde https://github.com/Synchro/PHPMailer en formato zip (boton abajo a la derecha) la librería PHPMailer
- Descomprimimos la librería en la carpeta que utilizamos de HOST.
- Creamos nuestro script HTML/PHP
- Corren dicho documento y debe generar un resultado HTML como el siguiente:
- Con el ejemplo anterior, a las personas les va a llegar un correo como el siguiente:
-- -- Base de datos: `dbMail` -- create database dbMail; use dbMail; -- -- Estructura de tabla para la tabla `person` -- CREATE TABLE `person` ( `idperson` int(11) NOT NULL, `nameperson` varchar(60) COLLATE utf8_unicode_ci NOT NULL, `emailperson` varchar(60) COLLATE utf8_unicode_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -- Indices de la tabla `person` -- ALTER TABLE `person` ADD PRIMARY KEY (`idperson`);
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>PHPMailer - GMail SMTP Test</title>
</head>
<body>
<?php
// Libreria PHPMailer
require './Resources/PHPMailer/PHPMailerAutoload.php';
// Creamos una nueva instancia
$mail = new PHPMailer();
// Activamos el servicio SMTP
$mail->isSMTP();
// Activamos / Desactivamos el "debug" de SMTP (Lo activo para ver en el HTML el resultado)
// 0 = Apagado
// 1 = Mensaje de Cliente
// 2 = Mensaje de Cliente y Servidor
$mail->SMTPDebug = 2;
// Log del debug SMTP en formato HTML
$mail->Debugoutput = 'html';
// Servidor SMTP (para este ejemplo utilizamos gmail)
$mail->Host = 'smtp.gmail.com';
// Puerto SMTP
$mail->Port = 587;
// Tipo de encriptacion SSL ya no se utiliza se recomienda TSL
$mail->SMTPSecure = 'tls';
// Si necesitamos autentificarnos
$mail->SMTPAuth = true;
// Usuario del correo desde el cual queremos enviar, para Gmail recordar usar el usuario completo (usuario@gmail.com)
$mail->Username = "gymcaobacr@gmail.com";
// Contraseña
$mail->Password = "HolaAmigo";
// Conectamos a la base de datos
//El orden es: dirección del host, usuario, contraseña, nombre de la base de datos.
$db = new mysqli('localhost', 'root', '', 'dbMail');
if ($db->connect_errno > 0)
{
die('Error connect: [' . $db->connect_error . ']');
}
// Creamos la sentencias SQL
$result = $db->query("select nameperson,emailperson from person;");
// Iniciamos el "bucle" para enviar multiples correos.
while($row = $result->fetch_assoc())
{
//Añadimos la direccion de quien envia el corre, en este caso
//YARR Blog, primero el correo, luego el nombre de quien lo envia.
$mail->setFrom('gymcaobacr@gmail.com', 'YARR Blog');
$mail->addAddress($row['emailperson'], $row['nameperson']);
//La linea de asunto
$mail->Subject = 'Welcome to YARR Blog!';
/*
* Existen dos formas de mandar un correo:
* - Escribiendo el mensaje en un String y mandarlo. (Así se va hacer en el ejemplo).
* - Crear un HTML e ingresarlo Se haría así:
* $mail->msgHTML(file_get_contents('contenido.html'), dirname(__FILE__));
* PHPMailer permite insertar imágenes, css, etc.
* NOTA: No se recomienda el uso de JavaScript.
*
* Mediante un String se haría así:
*/
//Creamos el mensaje
$message = "Hello ".$row['nameperson'].", this is a email message from YARR Blog.";
//Agregamos el mensaje al correo
$mail->msgHTML($message);
// Enviamos el Mensaje
$mail->send();
// Borramos el destinatario, de esta forma nuestros clientes no ven los correos de las otras personas y parece que fuera un único correo para ellos.
$mail->ClearAddresses();
}
?>
</body>
</html>
Agradecimiento a CodeJobs.


Excelente! Me fue de mucha ayuda!
ResponderBorrarQue bueno, me alegro que te haya servido. :)
Borrar