Me gustaría crear un email personalizado que incluya el archivo adjunto que el usuario ha cargado en el formulario, o al menos un enlace a dicho archivo. ¿Cómo hago esto?

1. En las propiedades del formulario, asegúrese de que la opción "Notificación por Email" esté ACTIVADA.


2. Copie el siguiente código en un editor de código o archivo txt.

$this->execPieceByName('ff_InitLib');
$from = ff_getSubmit('email');
$fromname = ff_getSubmit('Name');
$subject = 'Asunto del correo electrónico'; // Escriba aquí el asunto que mostrará el email
$recipient = 'micorreo@email.com'; // Escriba aquí su correo electrónico de administrador
$body = '';
       
      if (count($this->maildata)){
          foreach ($this->maildata as $data){

                $testEx = explode("\n", trim($data[_FF_DATA_VALUE]));
                $cntTestEx = count($testEx);
                if($cntTestEx > 1){
                      for($ex = 0; $ex < $cntTestEx; $ex++){
                            if(!is_array($attachment) && $attachment != ''){
                                    $attachment = array_merge(array(trim($testEx[$ex])), array($attachment));
                            }                            
                            else if(is_array($attachment)){
                                    $attachment = array_merge(array(trim($testEx[$ex])), $attachment);
                            }                            
                            else{
                                    $attachment = trim($testEx[$ex]);
                            }
                      }
                }                
                else{
                      if(!is_array($attachment) && $attachment != ''){
                             $attachment = array_merge(array(trim($data[_FF_DATA_VALUE])), array($attachment));
                      }                      
                      else if(is_array($attachment)){
                             $attachment = array_merge(array(trim($data[_FF_DATA_VALUE])), $attachment);
                      }
                      else {
                             $attachment = trim($data[_FF_DATA_VALUE]);
                      }
                }

           }
     } 


foreach ($this->maildata as $data) {

  if( $data[_FF_DATA_NAME] == 'upload' )
{
   $body .= $data[_FF_DATA_TITLE].': http://www.tudominio.com/path/to/uploads/' . basename($data[_FF_DATA_VALUE]);
} else {
   $body .= $data[_FF_DATA_TITLE].": ".$data[_FF_DATA_VALUE].nl() . "\r\n";

  }
}

$this->sendMail($from, $fromname, $recipient, $subject, $body, $attachment);  // Línea que ejecuta el envío del email.

 



3. Haga los cambios necesarios en el código (véanse los comentarios con // ) - IMPORTANTE

Debe cambiar el siguiente texto, concretamente el situado dentro de las comillas, poniendo el asunto del email y la dirección del administrador respectivamente.

$subject = 'Asunto del email'; // Asunto del email
$recipient = 'mi_correo_admin@email.com'; // Correo electrónico del administrador

 

Y cambie la ruta de acceso para que apunte a su carpeta de subida de datos en:

 

$body .= $data[_FF_DATA_TITLE].': http://www.tudominio.com/path/to/uploads/' . basename($data[_FF_DATA_VALUE]);

 

4. Una vez haya editado el código como se ha descrito, vaya a las propiedades del formulario > pestaña Avanzado y haga clic sobre el enlace "Más opciones".

5. Vaya al menú ENVIAR PIEZAS > sección Final del Envío y haga clic sobre Tipo: personalizado. Esto abrirá un área de texto donde deberá pegar el código anteriormente editado.

6. Haga clic sobre el botón Guardar.

7. Luego vuelva al menú principal de su formulario mediante el botón Cancelar y guarde el formulario mediante el botón Guardar situado en la parte superior izquierda.

8. Pruebe el formulario y observe los resultados.

 

Muy bien, pero me gustaría enviar el email a varios administradores. ¿Es esto posible?

 

Por supuesto. Borre la siguiente línea de código:

$recipient = 'micorreo@email.com'; // Escriba aquí su correo electrónico de administrador

 

Y cambie la última línea del código:

 

$this->sendMail($from, $fromname, $recipient, $subject, $body, $attachment);  // Línea que ejecuta el envío del email.

por:

$this->sendMail($from, $fromname, "admin1@email.com", $subject, $body, $attachment);  // Línea que ejecuta el envío del email.
$this->sendMail($from, $fromname, "admin2@email.com", $subject, $body, $attachment);  // Línea que ejecuta el envío del email.
$this->sendMail($from, $fromname, "admin3@email.com", $subject, $body);  // Línea que ejecuta el envío del email PERO sin el archivo adjunto.

 

Es decir, se añade una línea extra por cada nueva dirección de administrador que recibirá el correo, cambiando el valor del email en cada una de las líneas.

Descuentos actuales

Suscripción todos extensiones

Summer Sale! All subscriptions at a special price!


Sin límite de dominios!. Incluye todas nuestras extensiones presentes y futuras para Joomla!®, plantillas para Joomla!®   adquiriendo la suscripción de por vida tiene acceso a todas nuestras plantillas.

Más información aquí

Descuento por componentes terceros - 25% Off

Nosotros le ayudamos a que no incurra en grandes gastos. Si es nuevo cliente y ha adquirido un constructor de formularios de otro proveedor, obtendrá un 25% de descuento en nuestra suscripción de un año o de por vida.

Cómo recibir el descuento:

Envíenos un correo electrónico a sales@crosstec.org con la evidencia (por ejemplo, un recibo de PayPal) de que a adquirido otra extensión para formularios y espere a nuestras instrucciones de pago para disfrutar de su suscripción con descuento.

Apoyando a la comunidad Joomla!

Nuestra pasión nos lleva a apoyar a grupos oficiales de usuarios de Joomla! y a organizadores de eventos Joomla! registreados en Joomla.org.

Si planea organizar un evento relacionado con la comunidad Joomla! y necesita cualquiera de nuestros productos, por favor, envíenos un email a info@crosstec.org y recibirá una suscripción de por vida gratuitamente.