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