Problemas con envio de email en php

Iniciado por carnicero666, 4 Abril 2009, 02:30 AM

0 Miembros y 1 Visitante están viendo este tema.

carnicero666

Que tal amigos del foro cree un form para el vio de un email, pero lo unico que me llega es el nombre del mail, y no llega ni el nombre, mail, telefono, direccion  este es el codigo del form:

  <form id="form" name="form1" method="post" action="gracias.php">
      <p>
        <label><span class="style3"><span class="style4"><br />
        </span></span><span class="style12">&nbsp;&nbsp;&nbsp;Nombre:</span>&nbsp;&nbsp;&nbsp;&nbsp;
        <input type="text" size="50" name="nombre" id="nombre" />
        </label>
</p>
      <p>
        <label><span class="style12">&nbsp;&nbsp;&nbsp;Domicilio:</span>
        <input name="domicilio" size="50" type="text" id="domicilio" value="" maxlength="60" />
        </label>
      </p>
      <p>
        <label><span class="style12">&nbsp;&nbsp;&nbsp;Telefono:</span>&nbsp;&nbsp;
        <input type="text"  size="50" name="telefono" id="telefono" />
        </label>
      </p>
      <p>
        <label><span class="style9">&nbsp;&nbsp;&nbsp;E-mail:</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <input type="text" size="50" name="mail" id="mail" />
        </label>
      </p>
    </form>
Este el codigo del gracias.php:

<?php
$msg = "";
$field_name = array_keys($HTTP_POST_VARS); // guardamos todos los nombres de los "fields" existentes en el formulario
$value_name = array_values($HTTP_POST_VARS);// guardamos todos los valores en sus respectivas variables

for ($i=0;$i<count($field_name);$i++)
   {
   $msg .= "".$field_name[$i].": ".$value_name[$i]."\n"; // $msg reune el nombre de la variable y su valor
   }

$recipient = "mail@server.com"; // el mail deseado
$subject = "Registro"  "\n" ; // el titulo del mail
$mailheaders = "From: " .$nombre; // quien lo manda y el dominio
$mailheaders .= "Reply-To: ".$mail."\n\n";   // responder a: Importante! si quieres que el replay:to funcione tienes
                                 //que tener en el formulario un field que tiene como nombre "mail".

mail($recipient, $subject, $msg, $mailheaders);// mandamos el mail con los todos los datos

?>

si alguien me pudiera ayudar, se lo agradecería.

YST

http://foro.elhacker.net/php/pequenos_trucos_en_php-t152467.0.html

Función hecha por дٳŦ*

Código (php) [Seleccionar]
<?php
//Ejemplo: send_mail("user@mail.com","cuerpo","asunto","demi@localhost","demi");
 
function send_mail($to$body$subject$fromaddress$fromname$attachments=false)
{
  
$eol="\r\n";
  
$mime_boundary=md5(time());
 
  
# Common Headers
  
$headers .= "From: ".$fromname."<".$fromaddress.">".$eol;
  
$headers .= "Reply-To: ".$fromname."<".$fromaddress.">".$eol;
  
$headers .= "Return-Path: ".$fromname."<".$fromaddress.">".$eol;    // these two to set reply address
  
$headers .= "Message-ID: <".time()."-".$fromaddress.">".$eol;
  
$headers .= "X-Mailer: PHP v".phpversion().$eol;          // These two to help avoid spam-filters
 
  # Boundry for marking the split & Multitype Headers
  
$headers .= 'MIME-Version: 1.0'.$eol.$eol;
  
$headers .= "Content-Type: multipart/mixed; boundary=\"".$mime_boundary."\"".$eol.$eol;
 
  
# Open the first part of the mail
  
$msg "--".$mime_boundary.$eol;
 
  
$htmlalt_mime_boundary $mime_boundary."_htmlalt"//we must define a different MIME boundary for this section
  # Setup for text OR html -
  
$msg .= "Content-Type: multipart/alternative; boundary=\"".$htmlalt_mime_boundary."\"".$eol.$eol;
 
  
# Text Version
  
$msg .= "--".$htmlalt_mime_boundary.$eol;
  
$msg .= "Content-Type: text/plain; charset=iso-8859-1".$eol;
  
$msg .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
  
$msg .= strip_tags(str_replace("<br>""\n"substr($body, (strpos($body"<body>")+6)))).$eol.$eol;
 
  
# HTML Version
  
$msg .= "--".$htmlalt_mime_boundary.$eol;
  
$msg .= "Content-Type: text/html; charset=iso-8859-1".$eol;
  
$msg .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
  
$msg .= $body.$eol.$eol;
 
  
//close the html/plain text alternate portion
  
$msg .= "--".$htmlalt_mime_boundary."--".$eol.$eol;
 
  if (
$attachments !== false)
  {
    for(
$i=0$i count($attachments); $i++)
    {
      if (
is_file($attachments[$i]["file"]))
      {  
        
# File for Attachment
        
$file_name substr($attachments[$i]["file"], (strrpos($attachments[$i]["file"], "/")+1));
 
        
$handle=fopen($attachments[$i]["file"], 'rb');
        
$f_contents=fread($handlefilesize($attachments[$i]["file"]));
        
$f_contents=chunk_split(base64_encode($f_contents));    //Encode The Data For Transition using base64_encode();
        
$f_type=filetype($attachments[$i]["file"]);
        
fclose($handle);
 
        
# Attachment
        
$msg .= "--".$mime_boundary.$eol;
        
$msg .= "Content-Type: ".$attachments[$i]["content_type"]."; name=\"".$file_name."\"".$eol;  // sometimes i have to send MS Word, use 'msword' instead of 'pdf'
        
$msg .= "Content-Transfer-Encoding: base64".$eol;
        
$msg .= "Content-Description: ".$file_name.$eol;
        
$msg .= "Content-Disposition: attachment; filename=\"".$file_name."\"".$eol.$eol// !! This line needs TWO end of lines !! IMPORTANT !!
        
$msg .= $f_contents.$eol.$eol;
      }
    }
  }
 
  
# Finished
  
$msg .= "--".$mime_boundary."--".$eol.$eol;  // finish with two eol's for better security. see Injection.
 
  # SEND THE EMAIL
  
ini_set(sendmail_from,$fromaddress);  // the INI lines are to force the From Address to be used !
  
$mail_sent mail($to$subject$msg$headers);
 
  
ini_restore(sendmail_from);
 
  return 
$mail_sent;
}
?>


Yo le enseñe a Kayser a usar objetos en ASM

дٳŦ٭

No sale, se va al spam, que sucede?, para usar la funcion mail() necesitas un relay... prueba con sockets, usando phpmailer. Suerte


Con sangre andaluza :)


carnicero666

hola a todos, estoy enviando un mail com php, y tengo un problema, el mensaje del mail no llega solo el titulo, si alguie me puede decir donde esta mi error, aqui dejo el codigo


<?php

$destino = "yo@server.com";
$direccion = $_GET['direccion'];
$msg = $_GET['nombre'];
$msg = $_GET['mail'];
$msg = $_GET['telefono'];
//Enviamos el mail
mail ($destino, "Registro de clases ",$msg);

//Le decimos al user que su mail ha sido enviado con exito
echo "Tu mensaje ha sido enviado con exito ha:  $destino !!";
?>

 

Nakp

te importaría postear todo en el mismo tema? no crees uno nuevo para responder :¬¬

@alf: borra este post y combina el tema con este por favor :xD
https://foro.elhacker.net/php/problemas_con_envio_de_email_en_php-t250752.0.html
Ojo por ojo, y el mundo acabará ciego.

дٳŦ٭

Cita de: Nakp en  7 Abril 2009, 21:38 PM
te importaría postear todo en el mismo tema? no crees uno nuevo para responder :¬¬

@alf: borra este post y combina el tema con este por favor :xD
https://foro.elhacker.net/php/problemas_con_envio_de_email_en_php-t250752.0.html

Deal.


Con sangre andaluza :)