Last active
April 19, 2023 13:30
-
-
Save IsaacAndres/c2cef31a601b1c3ad49d40c4d389aea7 to your computer and use it in GitHub Desktop.
Este código muestra cómo agregar la opción "Añadir el calendario" a los correos electrónicos enviados mediante Laravel Mailable, utilizando la librería Spatie Icalendar Generator para crear archivos iCalendar.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
* Se requiere la instalación del paquete Spatie/IcalendarGenerator vía composer para utilizar | |
* funcionalidad de generación de archivos iCalendar. | |
* El paquete puede ser instalado con el comando "composer require spatie/icalendar-generator" | |
* Para más información, consulte la documentación en https://github.com/spatie/icalendar-generator | |
*/ | |
namespace App\Mail; | |
use Carbon\Carbon; | |
use Illuminate\Mail\Mailable; | |
// Importacion de las clases de Spatie/ICalendar | |
use Spatie\IcalendarGenerator\Components\Calendar; | |
use Spatie\IcalendarGenerator\Components\Event; | |
class ExampleICalendarInMail extends Mailable | |
{ | |
public function build() | |
{ | |
// Se crea un objeto iCalendar usando la librería Spatie Icalendar Generator | |
$ics = Calendar::create('Título del evento') // Creación del objeto Calendar | |
->event(Event::create('Título del evento') // Creación del objeto Event y añadiéndolo al objeto Calendar | |
->startsAt(Carbon::parse('2023-04-18')->setTimezone('UTC')) // Añadiendo la fecha de inicio al objeto Event | |
->endsAt(Carbon::parse('2023-04-20')->setTimezone('UTC')) // Añadiendo la fecha de término al objeto Event | |
) | |
->get(); // Obteniendo el archivo iCalendar en formato string | |
// Se retorna el correo electrónico en formato Markdown, con un remitente y un asunto | |
// Además, se adjunta el archivo iCalendar creado anteriormente | |
return $this->markdown('emails.example') // Especificando la plantilla de correo electrónico a usar | |
->from(config('app.mail_from_addres'), 'Isaac') // Añadiendo el remitente del correo | |
->subject('Email con ICalendar') // Añadiendo el asunto del correo | |
->attachData($ics, 'invite.ics', [ // Añadiendo el archivo iCalendar como adjunto | |
'mime' => 'text/calendar', // Especificando el tipo de archivo | |
]); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment