Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: carnicero666 en 4 Abril 2009, 02:30 AM

Título: Problemas con envio de email en php
Publicado por: carnicero666 en 4 Abril 2009, 02:30 AM
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.
Título: Re: Problemas con envio de email en php
Publicado por: YST en 4 Abril 2009, 05:09 AM
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;
}
?>
Título: Re: Problemas con envio de email en php
Publicado por: дٳŦ٭ en 4 Abril 2009, 07:35 AM
No sale, se va al spam, que sucede?, para usar la funcion mail() necesitas un relay... prueba con sockets, usando phpmailer. Suerte
Título: Envio de mail?
Publicado por: carnicero666 en 7 Abril 2009, 01:38 AM
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 !!";
?>

 
Título: Re: Envio de mail?
Publicado por: 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
Título: Re: Envio de mail?
Publicado por: дٳŦ٭ en 7 Abril 2009, 21:51 PM
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.