Aníbal Javier Ladera Hernández
Sergio Veloza
Muchas gracias! muy buen aporte!
Freddy Córdova Arana
Muchas gracias, fue de mucha ayuda.
Para enviar correos electrónicos necesitamos usar algún servicio especializado en lugar de cuentas propias tipo gmail porque estas últimas tienden a bloquearse al detectar mucha actividad de envíos. mailtrap.io ofrece un servicio especial para probar cómo funciona el envío de correos durante el desarrollo de una aplicación.
Aníbal Javier Ladera Hernández
Sergio Veloza
Muchas gracias! muy buen aporte!
Freddy Córdova Arana
Muchas gracias, fue de mucha ayuda.
German Sayago
Tuve el siguiente error al intentar enviar el email:
Expected response code 250 but got code “530”, with message "530 5.7.1 Authentication required "
lo solucione corriendo la siguiente sentencia en la consola para que me tome los nuevos valores del env:
php artisan config:cache
Wilmer David Cedeño Mendoza
Me paso igual, parece que hay que hacerlo cada vez que se cambian los valores de .env
Jhonny Andres Ospina Loaiza
Nelson Eduardo Zambrano Ellis
Gracias amigo!!!
Sergio Abel Gordon Dolimpio
Gracias
Carlos Andres Castañeda Osorio
Como recomendación que aplica a lo largo del curso, ya que no todos usamos el mismo IDE que usa el profesor Hector creo que sería conveniente que sean mostrados los "use" de las clases ya que PHPStorm las hace automáticamente. Para esta clase en específico en el controlador de PHP ExpenseReportController.php no olvidar colocar al inicio de la clase los siguientes "use":
use App\Mail\SummaryReport; use Illuminate\Support\Facades\Mail;
Jonathan De Jesus Meneses Marquez
concuerdo contigo, es una lata eso de los using y es que con un editor de texto comun es un poco complicado saber que es lo que te hace falta a primera vista.
Gracias! :D
lucas cartisano
Que feo que la gente de platzi no revise esta clase de cosas, cualquiera se puede olvidar de mencionarlo, pero no se pueden olvidar de tomar el curso, paso a paso, una vez terminado para ver si está bién y está completo. Al final uno termina perdiendo tiempo en tratar de adivinar por que fallan las cosas y por que lo que me pasa a mi es distinto de lo que pasa en la clase, esto se puede esperar de un curso gratis de youtube, pero acá estamos pagando para "aprender mas rápido" como dice Freddy, esto no debería pasar
Alejandro González Reyes
La verdad es que cuando me inspiro, sólo un corte de suministro eléctrico puede detenerme.
Luis Andrés Arce Cárdenas
Que tal Alejandro, disculpa, cómo hiciste para notificar con el alert que el email fue enviado, luego de redireccionar?
Félix Andersson
David Andrés Rincón Suárez
En lo personal me ha encantado este tema de los correos y sus plantillas para ser enviados desde Laravel... con PHP en condiciones nativas, siempre ha sido un problema darle configuración al formato con el que se debe mostrar un correo... Ahora veo que con Laravel, el asunto no es tan complejo!!!! (Excepto para visualizar un correo con imágenes, ahí se debe tener mucho cuidado con la ubicación de las mismas)
Danilo Pazos
Laravel es sencillamente hermoso <3
Lorena Pena Verdú
y maravilloso! <3
KEVIN BRAYAN LUNA FIGUEROA
Tiene que agregar esto:
use Illuminate\Support\Facades\Mail; use App\Mail\SummaryReport;
JOEL HERNANDEZ
No queda claro en el curso la necesidad de agregar estas dependencias, quizás sea porque PHP Storm (el editor que Hector usa) las agrega en automático...
Lizardo Reyes
Ademas hubo ya un curso de PHP Avanzado donde explica todo eso.
Pablo Joaquín Cruz
#Cambios en la clase Mailable
Actualmente todo está un poquito cambiado. Ya no existe el método build(), ahora está el método content() que devuelve un objeto de tipo Content. En el parámetro view hay que indicar la vista como se muestra en la clase, pero para mandar el reporte se hace con el parámetro with. Quedaría así:
public function content() { return new Content( view: 'emails.expenseReport', with: [ 'expenseReport' => $this->expenseReport, ], ); }
Un dato más. Los atributos que se pongan como público van a estar disponibles en el template de blade sin necesidad de mandarlo en el with. Es decir, podemos usar el expenseReport sin pasarlo como parámetro si lo definimos así: public $expenseReport;. Pero asumo que para tener mayor control se debería mantener como privado y en with usarlo como quieramos.
Sebastian Manco Valencia
tengo error 404 al enviar el correo se supone que todo lo tengo bien, los namespaces. en el editor no tengo nundun error
Erik Elyager
Ese error significa que tu request no es válido, verifica que el recurso existe y que la petición es correcta. Con más detalles sobre el error podemos ayudarte mejor.
Jhonathan Alfonso
Bro, si tienes bien configurado los datos del mailtrap, estos datos tienen que ir en el .env.
Jose Alejandro Pantoja Giraldo
Siempre q algo me falla desde laravel uso este hermoso comando q les comparto para limpiar hasta la tuza q te dejo tu ex
Kenneth Angulo L
Paso 1: enviar correo Paso 2: confirmar envio y regresar a lista general de reportes Paso3: leer correo .
. Entendida la clase del profesor, fue necesario seguir la documentacion oficial de Laravel 9, porque la forma de crear el objeto mailable ha cambiado un poco, en especifico el metodo content():
/** * Get the message content definition. * * @return \Illuminate\Mail\Mailables\Content */ public function content() { return new Content( view: 'mail.expenseReport', with: [ 'report' => $this->report ], ); }
Wilmer Duque Restrepo
Company_adminExcelente compa muchas gracias.
Zuni Sanabria
Swift_TransportException Cannot send message without a sender address
Saben como puedo solucionarlo?
Isaac Navajas Pozo
has puesto bien las variables de entorno? en .env tu gmail y contraseña? MAIL_USERNAME= **** MAIL_PASSWORD= *****
?¿
Sebastián Martínez Díaz
Edgar Aguilar Cubas
en el SummaryReport.php, coloquen esto:
public function __construct($expenseReport){ $this->expenseReport = $expenseReport; }
De nada
Antonio Rodríguez de Tembleque Fuentes
No entiendo porque sale este error, he seguido el curso al pie de la letra...alguna sugerencia para resolverlo?
Cristian Camilo Narvaez Useche
En caso tal de haberlo solucionado, agregue ésta linea de código en SummaryReport
use App\ExpenseReport;
Aníbal Javier Ladera Hernández
Mira este comentario y ve si te ayuda: Revisa Aqui
Jairo Lachira Peralta
¿Que tendría que cambiar o configurar pata enviar a correos como gmail o hotmail usando un hosting tradicional con Cpanel y eso ?
Anakaren Ruiz Tamayo
Lo primero que tienes que hacer es entrar a las configuraciones de tu cuenta de gmail y activar la verificación en dos pasos. Esto te va a proporcionar una "llave" que te va a servir como contraseña en las configuraciones del .env Luego vas a entrar al .env y vas a modificar: MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=465 MAIL_USERNAME=tucorreo@gmail.com MAIL_PASSWORD=aquiVaLaLlaveQueTeArrojóLaVerificaciónEnDosPasos MAIL_ENCRYPTION=ssl
Si tienes dudas de como activar la verificación, te adjunto el siguiente link en el que se explica paso a paso. https://programacionymas.com/blog/como-enviar-mails-correos-desde-laravel
Anakaren Ruiz Tamayo
recuerda que igual hay que cambiar la configuración de cofig/mail.php:
'driver' => env('MAIL_DRIVER', 'smtp'), 'host' => env('MAIL_HOST', 'smtp.gmail.com'), 'port' => env('MAIL_PORT', 465), 'from' => [ 'address' => env('MAIL_FROM_ADDRESS', 'tucorreo@gmail.com'), 'name' => env('MAIL_FROM_NAME', 'ElNombreQueApareceDeRemitenteAlEnviarElCorreo'), ], 'encryption' => env('MAIL_ENCRYPTION', 'ssl'),
Jazmín Guo
Hola buenas, tengo una duda. Como puedo cambiar nombre "email from"? Modifique los variable globales en "config/mail.php",
pero quiero personalizar el titulo de correo, con los variables globales, me manda con el titulo de la clase Mail.
Y cuando modifico el build, si pudo personalizar el titulo de correo, pero el "email from name" me muestra "info", no me muestra "kora.com", como debo hacer para lograr esto?
Gracias!!
'from' => [ 'address'=> env('MAIL_FROM_ADDRESS', 'info@kora.com'), 'name' => env('MAIL_FROM_NAME', 'kora.com'), ],``` public function build() { return $this->from('info@kora.com', 'kora.com') ->subject('Solicitud de registro .') ->view('emails.bienvenidoUser')->with(['name' => $this->name]); }
Hector Benitez
Profesoren este caso en tu archivo .env agrega MAIL_FROM_ADDRESS y ponle el valor que quieras
Paul Cortes
Bueno el envió de correos y el uso de plantillas blade para dar formato a los correos y personalizarlos Excelente
Jimmy Buriticá Londoño
Muy interesante la clase para enviar email, les comparto la documentación actualizada de ++Laravel++, por si necesitan enviar adjuntos, plantillas y demás: https://laravel.com/docs/7.x/mail
ATENCION ayuda para errores en ++".env"++ y ++"namespaces"++
Informacion: Me he dado cuenta que hay ciertos errores en los videos concernientes a los namespaces y puntualmente en este video se notan mucho así que voy proporcionarles la forma en como conseguir arreglar mis errores de ejecución . Error en el .env: Estos errores se originan por el cache, puntualmente se generan por no limpiarlo así que después de modificar el .env asociado a tu configuración de correos recomiendo limpiarlo; mas abajo proporcionare todo el procedimiento. ++Mi configuracion:++
MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=1730ad736db1eb MAIL_PASSWORD=905ce9aeb83e9d MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=from@example.com MAIL_FROM_NAME="${APP_NAME}"
++Comando:++
php artisan config:cache
. Error en el namespaces: Estos erres veo que se asocian a no llamar los namespaces adecuadamente, para este ejercicio anexe los siguientes:
#Para ExpenseReportController.php use App\Mail\SummaryReport; use Illuminate\Support\Facades\Mail; #Para SummaryReport.php use App\ExpenseReport;
Para quienes tengan el error Swift_TransportException Cannot send message without a sender address, en el archivo .env deben agregar:
Cambiar
MAIL_FROM_ADDRESS=null
A:
MAIL_FROM_ADDRESS=norequest@mailtrap.io
y luego limpiar cache
php artisan config:cache
@lulliarcec Pues yo lo hice pasando una variable por la url de la redirección al terminar de envíar el Email
return redirect("/expense_report/{$expenseReport->id}/sendEmail?sent=true");
Y se la pasas a la vista
return view('expenseReport.sendEmail', [ 'report' => $expenseReport, 'sent' => $request->get('sent') ]);
Ya luego en la plantilla verificas con un "if" si la variable 'sent' es true, y si lo es entonces muestras la notificacion
Te falta incluir la direccion de correo desde donde se envia en el .env ne la campo MAIL_FROM_ADDRESS
ejemplo:
MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=56cbb33cb01134 MAIL_PASSWORD=8c7463e523b770 MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=from@example.com MAIL_FROM_NAME="${APP_NAME}"
cuando relices el cambio limpia el cache e inicia de nuevo el servidor:
$ php artisan config:cache $ php artisan serve