Foros del Web » Programando para Internet » PHP »

SCRIPT para enviar formularios por email

Estas en el tema de SCRIPT para enviar formularios por email en el foro de PHP en Foros del Web. Este script en php3 es del cajón de los recuerdos, el formulario que llama al script no necesita nada de php, osea puede ser un ...
  #1 (permalink)  
Antiguo 05/03/2003, 18:10
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 15 años, 4 meses
Puntos: 4
SCRIPT para enviar formularios por email

Este script en php3 es del cajón de los recuerdos, el formulario que llama al script no necesita nada de php, osea puede ser un archivo html, el script es llamado desde el action del form, el formulario debe tener algunos campos adicionales en los que darán al script la información que necesita, como por ejemplo la(s) direccion(es) de email(s) a donde mandar el formulario.

Pueden personalizar cómo desean que llegue el email:
sólo en email de texto o
en un email con formato.

DESCARGALO AQUI
email.php3 es el script en si
los demás archivos son formularios uno corto y uno muy largo a manera de ejemplos de cómo usar el script, no olviden modificar estos archvios para que envíen el contenido del formulario a sus direcciones de correo.

Dudas: enviar mensaje privado ó email.

P.D.: (y) A quienes lo adecúen a php4 (si es que el script lo necesitara) y a quienes lo mejoren, les pido me envíen una copia del script.

Código PHP:
<?php_track_vars?><?
/*    EMAIL.PHP3:
    Recepciona vía "POST" los datos de un formulario y los envia x correo electrónico a las
    direcciones especificadas en los campos _email[1], _email[2], ..., _email[n]
    utiliza el encabezado que se especifique en el campo _subject

    Por omisión envía sólo los campos con información, filtrando los que estan vacios, pero, 
    si se especifica un campo llamado _allfields (con cualquier valor) entonces envia también
    en el email los campos vacios.

    Es importante para el módulo tener _redirect y _email[n], de lo contrario arroja un mensaje
    de error.

    Al finalizar el envio por correo, redirecciona a la página indicada por el campo _redirect

    Notas:    los nombres de campo: _email[n], allfields y _subject estan reservados para uso del script.
            los campos reservados pueden ser de cualquier tipo.
            los campos reservados deben estar en minusculas.

    Sintaxis básica / Ejemplo:
    <form action="email.php3" method="post">
        ...
        <input type="(elija tipo aqui)" name="_email[1]" value="[email protected]">
        <input type="(elija tipo aqui)" name="_email[2]" value="[email protected]">
        <input type="(elija tipo aqui)" name="_email[3]" value="[email protected]">
        ...
        <input type="(elija tipo aqui)" name="_subject" value="(el asunto para los emails)">
        ... 
    </form>

    Ultima modificacion: 19.06.2001 - Creado por Paul Burlando M. - Lima, Perú.
*/

if(!isset($_subject)) { $_subject  '[no se especifica asunto]'; }

if( isset(
$_redirect) && isset($_email) ) {

  
$_cantsizeof($_email);    // Cantidad de destinatarios
  
$_nl=chr(10);                // Char. 10 "\n"

  
for($_t=1;$_t<=$_cant;$_t++) {
    
$_mensa 'Datos enviados desde un Formulario  -- Programador del Script Original: Paul Burlando M.'.$_nl;
    
$_mensa.= 'Server date/time: '.date('d/m/Y - h:m:s').$_nl.$_nl;
    
$_mensa.= 'Data List:'.$_nl.$_nl;
    
reset ($HTTP_POST_VARS);
    while (list (
$nombre__$valor__) = each ($HTTP_POST_VARS)) {
        if( (
substr($nombre__,0,6)<>'_email') && ($nombre__<>'_subject') && 
            (
$nombre__<>'_allfields') && ($nombre__<>'_redirect')) {

            if( isset(
$_allfields) ) {
              
$_mensa.= str_replace('_',' ',$nombre__) . ' = ' $valor__.$_nl;
                        } else {
              if( !empty(
$valor__) ) {
                
$_mensa.= str_replace('_',' ',$nombre__) . ' = ' $valor__.$_nl;
              }
            }
        }
    }
    
$_mensa addslashes($_mensa);

    
// Esta linea envia un email simple texto...
    
mail($_email[$_t], $_subject$_mensa);

    
// Esta linea envia un email con formato...
    //mail($_email[$_t], $_subject, $_mensa, "Content-type: text/html\n"); 
  
}

  
header('Location: '.$_redirect);

} else {
  
// ERROR: parametros importantes omitidos ...
  
echo '<html><h1>ERROR: Faltan Parametros Importantes</h1><br><br>Por favor use la sintaxis correcta.</html>';
}
?>
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #2 (permalink)  
Antiguo 05/03/2003, 21:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Vistes el form2mail que se hizo en este mensaje?

http://www.forosdelweb.com/showthrea...hreadid=116341

(usa los arrays supergloables $_GET / $_POST y los recorre con bucles foreach .. algo mas claros q los while y list each ... Tambien se recoge la IP del usuario q "usa" el formulario (+ se resuelve el DNS ..) .. y se chekea que el Host que lo ejecuta es el mismo donde está instalado para evitar usos "fraudulentos" del scrip xD)

Un saludo,
  #3 (permalink)  
Antiguo 06/03/2003, 13:44
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 15 años, 4 meses
Puntos: 4
No lo ví, como verás ya tengo el mío y aqui lo comparto con quien lo necesite.
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #4 (permalink)  
Antiguo 06/03/2003, 13:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Mensaje Original por temaqueja
No lo ví, como verás ya tengo el mío y aqui lo comparto con quien lo necesite.
Ok, pero no hay q cerrarse en lo que hace uno mismo .. hay q ver mas código .. (solo te decia q le hecharas un vistazo .. justamente para comentar sobre amabas soluciones q llegan a un mismo fin en la base .. )

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:47.