Adjuntar archivos de manera opcional
Comprar curso

203. Adjuntar archivos de manera opcional

En este capítulo veremos como hacer opcional el envió de archivos en un correo electronico.


3 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 1 año Destacado

    En algunas situaciones, puede ser útil hacer opcional el envío de archivos en un correo electrónico. Afortunadamente, en Laravel puedes lograr esto de manera sencilla.

    Primero, debes crear una clase de correo electrónico, como lo harías normalmente. Luego, puedes agregar una condición para verificar si el archivo adjunto existe y si el usuario ha solicitado específicamente que se adjunte. Si la respuesta es afirmativa, puedes agregar el archivo adjunto utilizando la función "attach". Si la respuesta es negativa, simplemente omite el archivo adjunto.

    Puedes lograr esto de varias maneras, como agregar una casilla de verificación en el formulario de envío de correo electrónico para que el usuario pueda seleccionar si desea adjuntar un archivo o no. También puedes usar una variable de entorno para establecer si el envío de archivos es opcional o no.

    Además, es importante asegurarte de que el código sea robusto y confiable. Puedes hacer esto probando el código en diferentes situaciones y verificando que el comportamiento sea consistente.

    En resumen, hacer opcional el envío de archivos en un correo electrónico en Laravel es una funcionalidad útil que puedes lograr de manera sencilla. Asegúrate de implementar esta funcionalidad en tu aplicación y ofrecer a tus usuarios una experiencia de usuario más personalizada.

  • Hugo Emanuel Ifran

    Hugo Emanuel Ifran hace 1 año

    yo tengo este problema que no me dejo continuar Path "C:\Users\admin\AppData\Local\Temp" is not readable., al parecer sube los archivos que enviamos a una carpeta, el ´problema es que no encuentra esta carpeta temp, ya probe con cambiarles los permisos y nada, se qye no tiene que ver mucho con el curso, pero si alguien sabe la solucion porfavor 

     

  • Jheyner David Ibagon

    Jheyner David Ibagon hace 1 año

    Hola, para la nueva funcionalidad de mailable, se crean nuevos funciones o metodos dentro la clase; he podido resolver pero en este caso cuando no se envian archivos ajuntos no he podido continuar, intente de esta forma pero no fue posible, la funcion when no esta disponible dentro del metodo attachments()…

    class ContactMailable extends Mailable implements ShouldQueue
    {
        use Queueable, SerializesModels;
    
    
        public $data;
    
    
        /**
         * Create a new message instance.
         *
         * @return void
         */
        public function __construct($data)
        {
          $this->data = $data;
        }
    
    
        /**
         * Get the message envelope.
         *
         * @return \Illuminate\Mail\Mailables\Envelope
         */
        public function envelope()
        {
            return new Envelope(
                subject: 'Contact Mailable',
                from: 'contactblog@mail.com', // Podemos cambiar el remitente del correo que se envia.
            );
    
    
    
        }
    
    
        /**
         * Get the message content definition.
         *
         * @return \Illuminate\Mail\Mailables\Content
         */
        public function content()
        {
            return new Content(
                //view: 'mails.contact',
                markdown: 'mails.contact',
                with: [
                  'data' => $this->data,
                ],
            );
        }
    
    
        /**
         * Get the attachments for the message.
         * Con esta funcion podemos enviar archivos adjuntos.
         *
         * @return array
         */
        public function attachments()
        {
            if (!isset($this->data['file'])) {
              return [];
            } else {
              return [
                // Attachment::fromPath($this->data['file']->getRealPath())
                //             ->as($this->data['file']->getClientOriginalName())
                //             ->withMime($this->data['file']->getMimeType()),
    
    
                // Podemos enviar varios archivos adjuntos con tareas de segundo plano.
                Attachment::fromStorage($this->data['file'])
    
    
              ];
            }
        }
    }
    • Anderson Daza hace 1 año

      Muchas gracias!!!