1
Paso
Crear Rutas
- IndexTestSendEmail:
Route::get("IndexTestSendEmail", "ControllerSendEmail@IndexTestSendEmail")->name("IndexTestSendEmail");
- TestSendEmail:
Route::post("TestSendEmail", "ControllerSendEmail@TestSendEmail")->name("TestSendEmail");
Ejecutamos el siguiente comando para que Laravel reconozca la ruta.
php artisan optimize
1.1
Paso
Crear Formulario
Dentro del directorio:
Laravel\resources\viewsAgregar la siguiente carpeta:
tests
Y dentro de ella, crear la siguiente vista
IndexTestSendEmail.blade.php
En la vista colocar el siguiente código html
2
Paso
Crear Controlador
Nota: Dentro de la siguiente carpeta:
Laravel\storage\app
Crear el siguiente directorio: \tmp.
Ejecutamos el siguiente comando para crear el controlador.
php artisan make:controller ControllerSendEmail
Dentro del controlador agregamos lo siguiente:
Ver Código.
El controlador incluye los siguientes métodos:
IndexTestSendEmail()
Retorna la vista en donde esta el formulario.
TestSendEmail()
Es el método en donde llega la información enviada del formulario. En donde se guardan los archivos en la carpeta tmp.Con el siguiente codigo, se procesa el envio del E-Mail:event(new Event_SendEmailTest( array( "EMailDestinatario" => $GetEmail, "Archivos" => $archivos ) ));
Despues se eliminan los archivos de la carpeta tmp.
3
Paso
Crear el Event y Listener
Ubicar el siguiente archivo: EventServiceProvider
Laravel\app\Providers\EventServiceProvider.php
Luego, ubicar la siguiente propiedad:
protected $listen = [];
Y agregar lo siguiente, dentro del array :
'App\Events\Event_SendEmailTest' => [ 'App\Listeners\Listen_SendEmailTest' ]
Después, ejecutar el siguiente comando:
php artisan event:generate
El comando, agregara dos archivos dentro de los siguientes directorios:
- Laravel\app\Events\Event_SendEmailTest.php
- Laravel\app\Listeners\Listen_SendEmailTest.php
4
Paso
Programar el Evento, Event_SendEmailTest.php
Dentro del archivo Event_SendEmailTest.php, realizamos lo siguiente: Ver código
En donde la propiedad public $data, contendrá las siguientes claves:
En donde la propiedad public $data, contendrá las siguientes claves:
- EMailDestinatario
- Archivos
5
Paso
Crear la Clase MailSendEmailTest
Ejecutamos el siguiente comando:
php artisan make:mail MailSendEmailTestDespués agregar lo siguiente: Ver código
5.1
Paso
Crear la vista del email
Crear la siguiente vista ubicada en el directorio a continuación:
Laravel\resources\views\emailsNota: Si no existe la carpeta emails, la crean. Después crear el archivo:
MailSendEmailTest.blade.phpEl cual, su funcion es agregar el cuerpo del email.
6
Paso
Programar el Evento, Listen_SendEmailTest.php
Por ultimo, se agrega lo siguiente Ver Código