preloader

Como enviar varios archivos por correo con Laravel

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\views
Agregar 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:
  • EMailDestinatario
  • Archivos
5

Paso

Crear la Clase MailSendEmailTest

Ejecutamos el siguiente comando:
php artisan make:mail MailSendEmailTest
Despué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\emails
Nota: Si no existe la carpeta emails, la crean. Después crear el archivo:
MailSendEmailTest.blade.php
El 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

Espero te sirva de ayuda la información.

element
guest
0 Comentarios
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x