Hola
Tengo Joomla version 3.4. y realizo formularios con BreezingForms 1.8.5 Stable (build 855)
Estoy configurando mi nueva web que todavia estan en fase de construccion.
El formulario de contacto lo hago con el breezingforms y funciona BIEN.
He programado para recibir una copia del formulario enviado al cliente y tambien al administrador de la web.
Pero ahora tengo un problema.
El administrador de la web recibe por email la copia del formulario Contacto1 y decide contestar la consulta al cliente, y al pinchar en su webmail "responder" siempre sale la direccion de nuestra empresa y me gustaria que saliera la direccion del cliente.
Es decir, me gustaria que pudiera "Responder a" (Reply to) al email de la persona que relleno el formulario. ESTO ES LA PRACTICA HABITUAL EN TODAS LAS EMPRESAS Y SE QUE SE PUEDE REALIZAR, de hecho muchas webs trabajan asi.
He estado viendo todos los videos durante horas de breezingforms y tambien el foro de Breezingforms pero solo encontre este enlace en ingles:
https://crosstec.org/en/support/online-documentation/breezingforms/18-email-configuration/207-conditional-reply-to-addresses.html
Por favor me podrian orientar donde puedo poner el "responder a" y que este sea el valor (email) del cliente que relleno el formulario.
Creo que debo ir a Breezingforms al formulario deseado y le doy a la Pestaña Avanzadas -> Mas opciones y luego seleciono "Emails Administrador" y es ahi donde me parece que debo configurar algo pero no se el que ni como.
El campo del formulario que quiero poner para "Responder a" es este: {email:value} (Es el que sale en el formulario)
Lei otro Post de Webempresa que se decia que "NO SE PUEDE HACER" y No estoy de acuerdo con lo dicho en este enlace: https://www.webempresa.com/foro/22-BreezingForms/140577-Responder-mail-recibido-desde-breezingforms.html
En mi opinion si es posible, La solución pasa por poner un "Responder a" REPLY TO.
Pero ...¿como?
Este problema es una QUESTION BASICA FUNDAMENTAL con la que se van a enfrentar muchos WEBMASTER o AFICIONADOS al diseño web con JOOMLA que tienen su web con ustedes.... ¿Por favor, No podrian buscar la solucion y ponerla en este Blog ???
Gracias !!
URL del sitio: Contenido solo visible a usuarios registrados
Hola
Aqui hay un artículo que explica el tema
https://crosstec.org/en/support/online-documentation/breezingforms/12-examples-scripts/143-from-field-as-name-and-email.html
Sin embargo revisa la nota :
*NOTE: Setting the from email address can be rejected by some mailing services!
Pues lo dicho, tal vez si realizas estos cambios los mails serán rechazados por el servidor, ya que lógicamente bajo este concepto estas suplantando la identidad del emisor del correo.
Saludos.
Hola,
Gracias por la respuesta.
Mi deseo no es suplantar la identidad de nadie... yo quiero que salga la direccion de mi empresa y es la correcta... Simplmente me gustaria saber como insertar "REPLY to" en la configuracion de Breezingforms, o sea, en en alguna casilla que se ve en la foto adjunta de mi anterior post.
Si no es posible de este modo.
1.- Me podria decir de la version que tengo yo (BreezingForms 1.8.5 Stable (build 855) cual es el archivo php que debo modificar y la ruta para localizarlo?.
2.- O debo modificarlo mediante javascript? ¿Que archivo es y que ruta es para encontrarlo?
Gracias.
HOla
Has probado el link que te envie, alli mencionan como realizarlo
https://crosstec.org/en/support/online-documentation/breezingforms/12-examples-scripts/143-from-field-as-name-and-email.html
Otra opcion sería que en las piezas de BF definir un script de envio de correos independiente
https://crosstec.org/en/forums/3-breezingforms-for-joomla/64976-custom-script-to-send-email.html
Tendrías que trabajar con la función PHP mail directamente
http://php.net/manual/es/function.mail.php
Aqui a través de los headers puedes hacer uso del el reply to
Lamentablemente estos ya son temas de programación, desde foro sólo podemos darte generalidades de esto
Saludos.
Hola,
He estado investigando y haciendo pruebas con los enlaces que me dio y parece queya tengo la solucion.
No cierre este Post. En un par de dias pegaré aqui la solución para otros usuarios.
Gracias.
Hola
No soy informatico, solo un aficionado.
Aqui abajo pego la solución a la duda planteada anteriormente.
El codigo php para que la "empresa" pueda responder a los emails procedentes de un formulario de BreezingForms. Mi version 1.8.5 Stable (build 855) Sept-2015.
Al responder saldra el email de la persona que relleno el formulario, cosa lógica, logísima. No entiendo como el desarrollador de Breezingforms no puso una opción mas fácil, simple para gente inexperta en programación.!! Pero bueno de todo se aprende !!. He probado el codigo y funciona perfectamente. Yo Trabajo con Joomla 3.4.3
Al finalizar, Espero que valores la respuesta como CORRECTA !! y asi estarás ayudando a otros usuarios. GRACIAS.
En resumen deberas sustituir en el codigo de abajo el nombre del email por el de tu empresa y el nombre del campo del email del formulario por el nombre que tu le diste a ese campo. Sigue leyendo y mira las fotos del final de este post.
Hay mucho codigo comentado... En php al comentar codigo ponemos // delante de cada linea, lo que lo deja desactivado. Quitando las dos barras // a principio de cada linea activaras este codigo.
Si no sabes, te recomiendo que copies y pegues el script (codigo) de abajo.
Esta sacado de esta web: https://crosstec.org/en/forums/3-breezingforms-for-joomla/64976-custom-script-to-send-email.html
Lo he retocado un poco, ya que he personalizado el texto del Asunto del email (Subject).
********* Empezamos ***************
Primero habra que seleccionar el formulario al cual estas montando. En mi caso "Contacto1" y selecciona la pestaña "Avanzados" y luego "mas opciones" -> Email Administrador y seleccionas "Notificacion por email: NO" y le das a guardar o grabar. Ver Foto1.
Despues, del menu de la izquierda ir a > Enviar Piezas > Inicio del Envío y seleccionas "Personalizado". Ver Foto2
Para los que tengan la version en ingles aqui es: Set following script here -> Form Options > Advanced > More Options > Submit Pieces > Begin Submit > Select Customise.
Se abrira un recuadro grande. Alli pegas el codigo script de abajo y le das a guardar o grabar. Ver Foto2
Veras que el codigo tiene apartados, 1, 2, 3, 4, 5, etc.
Mira el codigo linea a linea y cuando veas // a partir de aqui, veras mis comentarios. Haz lo que dicen en cada linea. Y asi cambiaras los datos del email por tus datos y nombre de la empresa.
Importante, ver que nombre le has dado al campo Email y Nombre y Apellidos de tu formulario. Yo los nombre como email, nombre y apellidos respectivamente.
Mira las fotos 3, 4, 5, Ya que deberas poner estos nombres en el apartado del codigo enumerado como num 2.
Cuando dice ff_getSubmit('email') sustituye 'email' por el nombre de tu campo. Aqui el codigo almacenara el valor del formulario que el cliente escriba.
Donde dice ff_getSubmit('nombre') sustituye 'nombre' por el nombre de tu campo. Aqui el codigo almacenara el valor del formulario que el cliente escriba.
Donde dice ff_getSubmit('apellidos') sustituye 'apellido' por el nombre de tu campo. Aqui el codigo almacenara el valor del formulario que el cliente escriba.
Apartado 3.-********* Informacion de la cabecera del Email ***************
En $to pones el nombre de la empresa o empleado que recibira los formularios enviados por email.
$to = 'Nombre de tu empresa o empleado que recibe formulario '
En $headers debes poner el nombre principal de la empresa (Normalmente es el mismo que pones en $to nombrado antes) pero podria ser diferente.
$headers .= 'From: Nombre de tu empresa ' . "rn";
Estan desactivados dos lineas para CC (envio copia email) y Bcc (Envio copia ciega email). Si las quieres activar quita las dos barras // al principio de la linea.
En el apartado 6. escribe la cabecera de texto que quieres recibir como mensaje.
Te recomiendo que mires las fotos ADJUNTAS.
//**** Codigo empieza aqui. Copia desde aqui hasta el final. ********************************
//**** Responder email recibido desde Breezingforms: Como insertar Email en Responder a (Reply to) *****
#********* Solo para los emails que recibe la empresa: Emails Administrador ******************************
$this->execPieceByName('ff_InitLib');
//2.-*********** Cogemos la Informacion del formulario que puso el cliente *********************
$EmailCliente = ff_getSubmit('email');//Este es el email del Cliente/Usuario (Escribe el nombre que pusiste en el campo "Nombre" de tu formulario para el E-mail. Yo puse 'email' Fijate en la Foto3)
//$name = ff_getSubmit('nombre');////Este es el nombre del Cliente/Usuario. (Escribe el nombre que pusiste en la Etiqueta del formulario en el campo del nombre. Yo puse nombre respectivamente.)
$NameCompletCliente = ff_getSubmit('nombre') . " " . ff_getSubmit('apellidos');//Este es el nombre y apellido del Cliente/Usuario. (Escribe el nombre que pusiste en el campo "Nombre" de tu formulario para el campo Nombre y Apellidos. Yo puse 'nombre' y 'apellidos' respectivamente.) Ver Foto 4 y 5.
//2.5 *** Transforma la primera letra de cada nombre o apellidos en mayuscula. Para ponersela al Titulo del EMAIL***********
$NameCompletCliente = ucwords(strtolower($NameCompletCliente));
//2.8 *** Aqui una Funcion que extrae todas las iniciales de un nombre **************
function initials($name){
$nword = explode(" ",$name);
$new_name = null;
foreach($nword as $letter){
$new_name .= $letter[0];
}
return strtoupper($new_name);
}
$InicialesNombre = initials($NameCompletCliente);//Variable que almacena las iniciales de un nombre.
//3.-********* Informacion de la cabecera del Email ***************
// To send HTML mail, the Content-type header must be set
$to = 'Nombre de tu empresa o empleado que recibe formulario ';//Este email corresponde a la persona de la empresa que recibirá los emails del formulairo para contestar. El efecto REPLY-TO solo funciona para un email. El que pongas aqui.
//$to = 'Nombre Empresa1 , Otro Nombre ';//Se puede agregar una o mas direcciones de email separadas por comas siempre y cualquiera de las personas que lo reciba podra responder pero el efecto REPLY-TO no funcionara. Solo habra unas comillas de apertura y cierre.
$headers = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "rn";
$headers .= 'From: Nombre de tu empresa ' . "rn";//Este email corresponde a la empresa.
$headers .= 'Reply-To: ' . $NameCompletCliente . '' . "rn";//Este email corresponde al Cliente/usuario que relleno el formulario. Asi al responderle saldra su dirección de email y nombre.
//$headers .= 'Cc: email3@ejemplo.com' . "rn";//Aqui pones quien otra direccion de email, por si quieres que otro trabajador reciba una copia de los formularios enviados, pero el efecto REPLY-TO no funcionara.
//$headers .= 'Bcc: OtraDireccionEmail@example.com' . "rn";//Y aqui otra direccion de email si quieres que otra persona reciba copia oculta de los formularios que se envian por email.
//4.-*** Personalizacion del Asunto del email añadiendo el dia y Hora de España. **********************
date_default_timezone_set('Europe/Madrid');//Las Zonas horarias las puedes coger de aqui: http://php.net/manual/en/timezones.php y sustituyes 'Europe/Madrid' por 'America/Argentina/Buenos_Aires' por ejemplo.
$date = new DateTime();//Fecha española en que se recibe el formulario.
//Aqui pones el nombre del formulario, las iniciales del nombre del cliente y He incluido la fecha para que cada email que se reciba aparezca como un email distinto, de lo contrario el Gmail almacena los emails por temas y los pone todos juntos, uno dentro de otro. De este modo cada email recibido es independiente y a la hora de buscarlos es mas fácil.
$subject = "Consulta recibida " . "#" . $InicialesNombre ." " . $date->format('d-m-Y H:i:s');
//5.-************ Cabecera del del mensaje a enviar Es decir a recibir por la Empresa. ********************************
$message = "
" . "
Asunto: Nueva Consulta a traves de formulario Contacto1." . "
Se ha recibido una nueva consulta el dia " . $date->format('d-m-Y H:i:s') . "
Los datos de la consulta son:
";
// 6.- ******* Saca todos los datos del formulario y los pasa a la variable $message.
// Encontre este script aqui: Fuente: https://crosstec.org/en/support/online-documentation/breezingforms/12-examples-scripts/143-from-field-as-name-and-email.html
//Simplemente quite el trocito ".nl();" y lo cambie por un "
" para que los campos del formulario salieran uno debajo de otro.
foreach ($this->maildata as $data){
if ($data[_FF_DATA_TYPE] != 'Hidden Input'){
$message .= $data[_FF_DATA_TITLE] . ": " . $data[_FF_DATA_VALUE] . "
";
}
}
// 7.- ******* Enviando todo por MAIL ****************
mail($to, $subject, $message, $headers);
// ****** FIN del codigo php **************************************
He querido matizar una cosa mas.
Mira la foto 3 de aqui abajo que corresponde al campo email del formulario.
Quise decir que en el codigo que os he pasado antes donde veas
ff_getSubmit('email')
sustituye la palabra 'email' del codigo por el nombre que pusiste en esta casilla del formulario (Ver foto 3 de aqui abajo.
Haz lo mismo con el campo ff_getSubmit('nombre') y con ff_getSubmit('apellidos')
Hola Cediva
Que bueno que solucionaste tu problema.
Gracias por compartir la solución
Saludos.