Desarrollo Web /

[PHP] Formulario de contacto, no envia el mail

Participa en el tema [PHP] Formulario de contacto, no envia el mail en el foro Desarrollo Web.
Yo quiero que desde mi pagina web se me pueda mandar mensajes, por eso cree ...

Buscar en este tema:
 
  •  
    #1 [PHP] Formulario de contacto, no envia el mail
    Yo quiero que desde mi pagina web se me pueda mandar mensajes, por eso cree una pagina de contacto con un formuario, y un php para ke me los envie por mail... ya tengo el php, y tengo el formulario... pero el mail nunca me llega.

    aca estan los dos codigos, a ver si alguien ve algo mal y me puede ayudar (soy medio newbie, nos e me caguen de risa )...


    EL de la pagina HTML
    Código:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Página Oficial de Sant'</title>
    <style type="text/css">
    <!--
    body {
        background-color: #000000;
    }
    -->
    </style>
    
    <link href="textarea.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
    <!--
    .style11 {
        font-size: 18px;
        font-weight: bold;
        font-family: Constantia;
        color: #FFFFFF;
    }
    #scroll {
        position:absolute;
        left:72px;
        top:62px;
        width:688px;
        height:508px;
        overflow:auto
    }
    -->
    </style>
    <link href="scroll.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
    <!--
    .style12 {color: #FFFFFF}
    .style13 {
        font-family: Constantia;
        font-weight: bold;
        color: #FFFFFF;
    }
    -->
    </style>
    </head>
    
    <body>
    <div id="scroll">
      <p align="center" class="style11"><span class="style11"><img src="contact.png" alt="Concact Logo" width="362" height="122" /></span></p>
      <p align="center">
    <FORM ACTION="contact.php" method="post" name="form1">
      <table align="center" border="0">
      <td align="left" width="100"><span class="style13">Name:</span></td>
          <td align="center" width="410"><div align="left">
              <input name="nombre" type="TEXT" value="" size="45" maxlength="42" />
          </div></td>
      <tr>
        <td align="left" width="100"><span class="style13">Email: </span></td>
        <td align="center" width="410"><div align="left">
          <input name="mail" type="TEXT" value="" size="45" maxlength="42" />
        </div></td>
      </tr>
      <tr>
        <td align="left" width="100"><span class="style13">Subject:</span></td>
        <td align="center" width="410"><div align="left">
          <input name="motivo" type="TEXT" value="" size="65" maxlength="75" />
        </div></td>
      </tr>
      <tr>
        <td align="left" width="100"><span class="style13">Message: </span></td>
        <td><textarea name="mensaje" rows=10 cols=65>
    </textarea></td>
      </tr>
      <tr>
        <td height="26" widht="100"></td>
        <td align="right" width="410"><div align="center">
          <input name="submit" type="SUBMIT" value="Enviar" id="submit" />
        </div></td>
      </tr>
      </table>
    </FORM> 
    </div><img src="block1.png" width="815" height="605" border="0" />
    </body>
    </html>
    
    El PHP
    Código:
    <?php
    if (isset($_POST['submit'])) { 
    
            // We get all the variables
            foreach ($_POST as $key=>$value) {
            if ( gettype( $value ) == "array" ) {
                //print "$key == <br>\n";
            } else {                   
                //print "$key == $value<br>\n";
                $key = $value;
            }
        }
        
        $message = "Contacto desde SantiagoPasarin.com.ar\n" . 
        "\nNombre: " .  $nombre . 
        "\nEmail: " . $email . 
        "\nMotivo de contacto: " . $motivo . 
        "\nMensaje: " . $mensaje; 
        
        $to = 'pasarin.santiago@gmail.com';
        $subject = '$motivo';
        $headers = "From: $mail\r\n";
        
        mail($to,$subject,$message,$headers);
        
    } else {
    echo 'Mensaje enviado correctamente. Santiago se pondra en contacto con usted pronto.';
    }
    ?>
    
    se me soluciono el problema ya... siquieren cierren el topic
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/desarrollo-web.264/776770-php-formulario-contacto-no-envia-mail.html
    | Más
  • Usuario inexistente escribió hace 1 año ¿Mensaje inapropiado?

    #2 Re: Formulario de contacto, no envia el mail

    antes de que cierren, sacá el isset es al dope
    Me gusta este mensaje
  • #3 Re: Formulario de contacto, no envia el mail

    Y cómo lo arreglaste?! Yo necesito hacer lo mismo!!

    Gracias!
    Me gusta este mensaje
  • #4 Re: Formulario de contacto, no envia el mail

    Te dejo este Codigo para enviar un formulario con un adjunto, funciona perfecto.


    Copio y Pego el codigo y html y el segundo codigo que utiliza en php.
    Aclaro como funciona por si alguien lo necesita:
    Esto lo puse en un archivo htm y lo llame formulario:

    <form name='formulario' id='formulario' method='post' action='mail_adjuntos.php' target='_self' enctype="multipart/form-data">
    <p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
    <p>Apellidos <input type='text' name='Apellidos' id='Apellidos'></p>
    <p>
    E-mail <input type='text' name='E-mail' id='E-mail'></p>
    <p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p>
    <p>
    <input type='submit' value='Enviar formulario'>
    </p>
    </form>



    Lo que esta mas abajo lo puse en un archivo php y lo llame (tiene que llamarse si o si): mail_adjuntos.php :

    Esto lo puse en un archivo php y lo llame: mail_adjuntos.php :

    <?php
    function form_mail($sPara, $sAsunto, $sTexto, $sDe)
    {
    $bHayFicheros = 0;
    $sCabeceraTexto = "";
    $sAdjuntos = "";
    if ($sDe)$sCabeceras = "From:".$sDe."\n";
    else $sCabeceras = "";
    $sCabeceras .= "MIME-version: 1.0\n";
    foreach ($_POST as $sNombre => $sValor)
    $sTexto = $sTexto."\n".$sNombre." = ".$sValor;
    foreach ($_FILES as $vAdjunto)
    {
    if ($bHayFicheros == 0)
    {
    $bHayFicheros = 1;
    $sCabeceras .= "Content-type: multipart/mixed;";
    $sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
    $sCabeceraTexto = "----_Separador-de-mensajes_--\n";
    $sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
    $sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
    $sTexto = $sCabeceraTexto.$sTexto;
    }
    if ($vAdjunto["size"] > 0)
    {
    $sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
    $sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
    $sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
    $sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
    $oFichero = fopen($vAdjunto["tmp_name"], 'r');
    $sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
    $sAdjuntos .= chunk_split(base64_encode($sContenido));
    fclose($oFichero);
    }
    }
    if ($bHayFicheros)
    $sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
    return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
    }
    //Ejemplo de como usar:
    if (form_mail("mail_de_destino@hotmail.com","Asunto del mensaje",
    "Los datos introducidos en el formulario son:\n\n", "mail_de_origen@mail.com"))
    echo "Su formulario ha sido enviado con exito";
    ?>

    Termino un renglon arriba el codigo php. Solo tienen que reemplazar mail_de_destino@hotmail.com por un mail de ustedes a donde llegara todo el formulario con el adjunto.
    En: Asunto del mensaje, ponen como quieren que figure el asunto:
    Y por ultimo: mail_de_origen@mail.com, aca ponen otra direccion de mail que tengan ustedes, esta haria una funcion como de ser la cuenta desde donde se estaria enviando el formulario, (no tiene nada que ver con la dire que despues coloque el usuario en el formulario, la del formulario funcionando es una cuenta que cada usuario quiera colocar).
    Ej tengo la cuenta 123@yahoo.com y 123@hotmail.com las dos son mias y una la coloco reemplazando en donde dice: mail_de_destino@hotmail.com y la otro en donde dice: mail_de_origen@mail.com
    Quedaria: mail_de_destino@hotmail.com reemplazo por: 123@yahoo.com aca es donde quiero que lleguen el formulario y el adjunto.
    mail_de_origen@mail.com reemplazo por: 123@hotmail.com por ej.
    Espero a alguien le sirva la explicacion.
    Saludos
    Un abrazo.
    Me gusta este mensaje


Estadísticas del tema
  • 3 RESPUESTAS
  • 390 VISTAS
  • 4 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB