Hola!
A quienes no les llegue el mail a Gmail agreguen “use PHPMailer\PHPMailer\SMTP;” abajo de “use PHPMailer\PHPMailer\PHPMailer;” en su archivo mail.php 😃
Les dejo el repo para que lo consulten:
https://github.com/PHPMailer/PHPMailer
Introducción
¿Cómo se renderiza una página web en mi computadora?
Levantando un servidor local
¿Cómo combinar HTML con PHP?
PHP como preprocesador de HTML
Imprime texto y etiquetas HTML
Condicionales
Ciclos
¿Cómo pasar variables de PHP a JavaScript?
Evita el código espagueti
Refactorizando código espagueti
Manejo de formularios
Cómo obtener una solicitud al servidor con PHP
Envío de un formulario a través de GET
Envío de un formulario a través de POST
Envío de imágenes
Guardando imágenes en el servidor
Tipos de inputs
Otros tipos de inputs
Valida si un formulario ha sido enviado
Sanitizando datos de mi formulario
Validando datos
Proyecto: formulario de contacto
Creando el maquetado
Haciendo la lógica de recepción del formulario
Integrando PHPMailer
Implementando el servidor de correos de Gmail
Conclusión
Es tu turno de poner todo en práctica
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 7
Preguntas 10
Hola!
A quienes no les llegue el mail a Gmail agreguen “use PHPMailer\PHPMailer\SMTP;” abajo de “use PHPMailer\PHPMailer\PHPMailer;” en su archivo mail.php 😃
Les dejo el repo para que lo consulten:
https://github.com/PHPMailer/PHPMailer
Algo que me generó confusión fue la forma en la que está implementada la lógica de envío de correos. Si se supone que es un formulario de contacto, el usuario espera que su mensaje llegue a la empresa, el equipo de contacto de la app, soporte, etc. Sin embargo, en la implementación lo que sucede es que el usuario recibe en su bandeja el mismo mensaje que envió a través del form.
Vemos esto cuando a Retax le llega el correo a su bandeja personal, es decir, la dirección que él ingresó cuando llenó el formulario.
Los correos se envían desde la dirección que indicamos en phpmailer->Username
.
Me costó un rato entender esto y supongo que el objetivo de la clase es mostrar un ejemplo donde se utiliza PHPMailer, pero en este ejemplo me parece que los correos deberían ir en la dirección contraria.
Mr. Michi
y su correo es [email protected]
[email protected]
. Esta es la direccion desde donde se envían los correos, por lo tanto es la que se configura con phpmailer->Username
y phpmailer->Password
. Esta dirección de correo lee la información del form, y la envía al correo del equipo de soporte de la app. Por eso llamo a esta cuenta “intermediaria”, pues su función es tomar el mensaje del usuario y pasarlo a soporte.[email protected]
con la información que escribió del usuario: su nombre, correo, y el mensaje.$body
del email que enviaría la cuenta intermediaria contac-center
debería incluir toda la información del usuario: nombre, correo y mensaje, pues supongo que si no se incluye el correo, no habrá forma de que el usuario reciba una respuesta, pues al equipo de soporte no le estaría llegando esta dirección de respuesta.¡Ahora a seguir practicando y nunca para de aprender! 💚
¿Estas viendo este comentario?
Lo hemos logrado!!!
Muchas felicidades por haber logrado terminar el proyecto 😎
Hubo dificultades en el proceso pero nos llevamos un gran aprendizaje a lo largo de este maravilloso curso que nos compartió el buen Retax 😄
Me voy super contento con todo lo aprendido.
.
Les comparto mi repo donde podrán encontrar todo el código 😃
.
Me llego el correo de Gmail!!!
No estaba recibiendo el correo, pero al poner en el formulario el correo a donde voy a recibir mi correo ya me llego, es decir asi:
No me llegó el mail 😦 pongo todo y me sale el mensajito de Mensaje enviado pero no sale en mi bandeja 😕
Por si acaso no ponían pus su correo gmail hice lo siguiente XD
index.php
if(sendMail($subject, $body, $email, $name, true)) {
$status = "succes";
} else {
$status = "danger";
}
mail.php
function sendMail($subject, $body, $email, $name, $html = false) {
try {
# Configuración inicial de nuestro servidor de correos
$correo = substr($email, strpos($email, '@') + 1);
if($correo != "gmail.com") {
return false;
}
$phpmailer = new PHPMailer();
$phpmailer->isSMTP();
# Intento de aceptar cualquier tipo de corre, pero se tienen que hacer cosas más complicadas bro :'c
// if(substr($correo, strpos($correo, '.')) == '.edu.mx')
// $phpmailer->Host = 'smtp.gmail.com';
// else
// $phpmailer->Host = 'smtp.' . $correo;
$phpmailer->Host = 'smtp.gmail.com'; #Host del gmail
$phpmailer->SMTPAuth = true;
$phpmailer->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; #Habilitan la encriptación para que todos los datos viajen seguros
$phpmailer->Port = 465; # Puerto que tiene seguiridad al enviar correos
$phpmailer->Username = '[email protected]'; #Tu Gmail
$phpmailer->Password = 'becbikrnrsrpytim';
// Añadiendo destinatarios
$phpmailer->setFrom('[email protected]', 'Mark Zuckerberg'); #Quien lo envía
$phpmailer->addAddress($email, $name); #Quien lo recibe
// Definiendo el contenido de mi email
$phpmailer->isHTML($html); //Set email format to HTML
$phpmailer->Subject = $subject;
$phpmailer->Body = $body;
// Mandar el correo
$phpmailer->send();
} catch (Exception $ex) {
return false;
}
}
Así si retorna falso pus le digo que pasó un error XD
Supongo que las credenciales usadas en el mail.php se deben “ocultar” mediante variables de entorno, como se hace en JS. Me imagino que vendrá más adelante en otros cursos.
Saludos.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.