Page 1 of 1

Trick: Send form data through email

PostPosted: Mon Feb 15, 2016 1:44 pm
by luishp
It is possible to send the data submited from a NAB form to an email address using PHP on a web server.
Just copy this code into a plain text editor and save it as "senddata.php", then upload it to your webserver:

Code: Select all
<?php
//Header required when app and php are of different origins
header("Access-Control-Allow-Origin: *");
$message="";
if($_SERVER["REQUEST_METHOD"] === "POST") {
   foreach ($_POST as $key => $value){
      $message .= "".htmlspecialchars($key).": ".htmlspecialchars($value)."\r\n";
   }
   $to = "somebody@example.com";
   $subject = "My subject";
   $headers = "From: webmaster@example.com" . "\r\n" . "CC: somebodyelse@example.com";
   mail($to,$subject,$message,$headers);
}else{
   $result = "INVALID DATA";
   echo $result;
}
echo "EMAIL SUCCESSFULLY SEND";
?>


Remember to change emails addresses.
On Form properties replace the "action" one with:

Code: Select all
http://yourdomain.com/yourfolder/senddata.php


You can use the FormSubmitToFile sample App to test it.

Regards.

Re: Trick: Send form data through email

PostPosted: Sat Jun 18, 2016 12:34 pm
by Ashale
Hola Luis,

Sería posible pasarle variables desde NAB (campos de un formulario) para ser enviado por email via el script php ??

Gracias,
un saludo!

Re: Trick: Send form data through email

PostPosted: Sat Jun 25, 2016 3:23 am
by luishp
Si Ashale, eso es justamente lo que hace :)
Saludos!

Re: Trick: Send form data through email

PostPosted: Thu Jun 30, 2016 9:21 pm
by gusgusl
Como podria hacer para usar tu ejemplo para enviar por correo el contenido de un listbox o de un area de texto con varias lineas?

Re: Trick: Send form data through email

PostPosted: Fri Jul 01, 2016 9:48 am
by luishp
El archivo PHP que pongo de ejemplo está preparado para detectar cualquier variable que se le envíe desde un formulario, independientemente de que sea a través de un area de texto, un listbox, un checkbox o lo que sea.
Realmente no tienes que hacer nada más de lo que explico arriba del todo.
A ver si consigo encontrar algo de tiempo y, ahora que NAB exporta a ZIP todos los recursos, comparto algunas plantillas útiles.
He dejado de lado unos cuantos plugins porque ultimamente no doy a basto.

Re: Trick: Send form data through email

PostPosted: Sat Jul 02, 2016 6:46 pm
by gusgusl
Hola, como estas
He estado probando tu script para el envio de los datos del formulario a traves del mail

Aqui loo que me pasa:

Recibo perfectamente el mail en mi casilla, pero sin contenido alguno en el mensaje
Como que no carga los datos del form o sera que estoy haciendo algo mal?
Te pregunto:

Las variables que contienen los diferentes datos del form deben ser puestas en algun lugar?

Re: Trick: Send form data through email

PostPosted: Sat Jul 02, 2016 10:06 pm
by luishp
gugsgusl:

Take the FormSubmit sample that comes with NeoAppNuilder.
Empieza con el ejemplo FormSubmit que viene con NeoAppBuilder

Click the Form Object and change the "action" property to "sendmail.php".
Haz click en el formulario y cambia la propiedad "action" a "enviarmail.php"

Compile the project.
Compila el proyecto.

Copy this code and save it within the FormSubmit compiled project folder as "sendmail.php" (don't forget to change email addresses)
Copia este código y guárdalo en la misma carpeta del proyecto compilado con el nombre "enviarmail.php" (no olvides cambiar primero las direcciones de email)

Code: Select all
<?php
//Header required when app and php are of different origins
header("Access-Control-Allow-Origin: *");
$message="";
if($_SERVER["REQUEST_METHOD"] === "POST") {
   foreach ($_POST as $key => $value){
      $message .= "".htmlspecialchars($key).": ".htmlspecialchars($value)."\r\n";
   }
   $to = "somebody@example.com";
   $subject = "My subject";
   $headers = "From: webmaster@example.com" . "\r\n" . "CC: somebodyelse@example.com";
   mail($to,$subject,$message,$headers);
}else{
   $result = "INVALID DATA";
   echo $result;
}
echo "EMAIL SUCCESSFULLY SEND";
?>


Upload everything to a web server and test it.
Súbelo todo a un servidor web y pruébalo.

I have tested it an it works perfectly. You can even add more fields to the form without touching the php file.
Lo he probado y funciona perfectamente. Puedes añadir cuantos campos quieras al formulario sin volver a tocar el archivo php.

Re: Trick: Send form data through email

PostPosted: Sun Jul 03, 2016 10:28 am
by gusgusl
Como tu dices, desde el ejemplo que viene con "Neoapp" funciona perfectamente
Pero desde mi aplicación y usando la misma configuración y siguiendo todo el procedimiento que distes no logro enviar los datos, me llega el correo pero vacio

Aquí cargue el código fuente de mi aplicación a ver si puedes echarme una mano y ver que esta equivocado
Y desde ya mil disculpas por mi ignorancia

http://guaviyu.org/Dumbo/Plataforma%20Web.neoapp

Re: Trick: Send form data through email

PostPosted: Tue Jul 05, 2016 1:14 am
by luishp
Creo que no te está funcionando porque has dejado vacía la propiedad property-name (nombre de la propiedad) en los campos de texto.
En HTML corresponde al atributo "name" que PHP necesita para darle un nombre a los campos de información que recibe.

I think it is not working becouse you have not entered any value into the property-name attribute on any of your text fields.
That's the "name" HTML attribute PHP needs to give a name to every piece of information recieved.

Re: Trick: Send form data through email

PostPosted: Tue Jul 05, 2016 10:35 pm
by gusgusl
Gracias, era por eso si que no enviaba

Re: Trick: Send form data through email

PostPosted: Tue Jul 05, 2016 10:40 pm
by gusgusl
Porque desde Neoapp envia los correos pero si compilo la aplicacion y la pruebo en un smartphone no hace el envío?

Para probar cree una aplicación, la compile, la subí a Phonegap y el .apk resultante lo probe en un smartphone.
Se abre el form de manera correcta pero si le doy enviar nunca hace el envio ni llega correo alguno a destino
Aclarar que como antes mencione si hago la prueba en Neoapp el envío es realizado correctamente.

Es por algun tipo de limitación por seguridad de android? o me esta faltando algo?

Re: Trick: Send form data through email

PostPosted: Wed Jul 06, 2016 12:04 am
by luishp
gusgusl, los archivos .php sólo pueden ejecutarse en un servidor web, no en el propio móvil.
Por ello, si vas a compilar la aplicación a .apk, en el formario debes indicar la dirección web del archivo .php completa.
Ejemplo: en lugar de "enviar.php" deberás poner "http://midominio.com/miruta/enviar.php"

gusgusl, .php files can only be executed in a web server, never in a user smartphone.
So, if you want to compile to .apk, you should use an absolute path to your .php file on your form.
Example: put "http://mydomain.com/mypath/send.php" instead of "send.php"

Re: Trick: Send form data through email

PostPosted: Wed Jul 06, 2016 11:39 am
by gusgusl
he probado poniendo la ruta completa y no hace el envió del mail
Mi ruta es :

http://guaviyu.org/Neoapp/sendmail.php

también he verificado que estén bien en el servidor las carpetas

esa misma dirección pero probando desde Neoapp funciona perfectamente