Foros del Web » Programando para Internet » PHP »

no puedo enviar mail correctamente

Estas en el tema de no puedo enviar mail correctamente en el foro de PHP en Foros del Web. Hola quisiera saber si para mandar un mail mediante un formulario necesito configurar algo en especial, ya que me tira este error y ya no ...
  #1 (permalink)  
Antiguo 28/10/2009, 13:07
sergio87
Invitado
 
Mensajes: n/a
Puntos:
no puedo enviar mail correctamente

Hola quisiera saber si para mandar un mail mediante un formulario necesito configurar algo en especial, ya que me tira este error y ya no sé que se debe.

Warning: mail() [function.mail]: SMTP server response: 550 Sender address must be specified


El codigo del formulario es:


<form action="correo.php" method="post">
<fieldset>
<p class="texto2">Si deseas realizar algún comentario, crítica o sugerencia o deseas contactarte con nosotros lo puedes hacer completando el siguiente formulario:</p>
<p class="texto2">
<label for="nombre">Nombre</label>
<input type="text" id="nombre" <?php if (strlen ($mensaje)>0) { ?>disabled <?php } ?> value="<?php $_POST["nombre"]?>" name="nombre"/>
</p>
<p class="texto2">
<label for="apellido">Apellido</label>
<input type="text" id="apellido" <?php if (strlen ($mensaje)>0) { ?>disabled <?php } ?> value="<?php $_POST["apellido"]?>" name="apellido"/>
</p>
<p class="texto2">
<label for="email">E-Mail</label>
<input type="text" id="email" <?php if (strlen ($mensaje)>0) { ?>disabled <?php } ?> value="<?php $_POST["email"]?>" name="email" />
<p class="texto2">
<label for="comentario"></label>
<textarea id="comentario" rows="4" cols="50" <?php if (strlen ($mensaje)>0) { ?>disabled <?php } ?> name="comentario"><?php $_POST["comentario"]?></textarea>
</p>
<p>
<input id="enviar" type="submit" value="Enviar" title="Enviar Mensaje" name="enviar" onclick="MM_validateForm('nombre','','R','apellido ','','R','email','','RisEmail','comentario','','R' );return document.MM_returnValue;" />
</p>
</fieldset>
</form>


y el del archivo correo.php:


<?php
$cuerpo = "Formulario de contacto\n\n";
$cuerpo .= "NOMBRE: " . $_POST["nombre"]."\n";
$cuerpo .= "APELLIDO: " . $_POST["apellido"]."\n";
$cuerpo .= "EMAIL: " . $_POST["email"]."\n";
$cuerpo .= "COMENTARIO: " . $_POST["comentario"]."\n";
$mail = $_POST["email"];
$header = 'From: '.$mail." \r\n";
mail("[email protected]", "contacto", $cuerpo, $header);

?>
  #2 (permalink)  
Antiguo 28/10/2009, 13:10
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: no puedo enviar mail correctamente

Que tal!!!

Puedes mira como se hace con la clase phpmailer : http://www.programacion.com/php/articulo/phpmailer/
tiene lo que necesitas y es sencilla de implementar.

Saludos.
  #3 (permalink)  
Antiguo 28/10/2009, 18:10
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 8 meses
Puntos: 2
Sonrisa Respuesta: no puedo enviar mail correctamente

Holas,

Como el error dice, Warning: mail() [function.mail]: SMTP server response: 550 Sender address must be specified, te faltó agregar la dirección del que envia el mail.

Una idea que se me ocurre, es sacar el From y dejar sólo el mail aca:
$header = 'From: '.$mail." \r\n";


No se si sea una solución, pero es al menos lógico.


Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter

Última edición por murderer; 28/10/2009 a las 18:16
  #4 (permalink)  
Antiguo 28/10/2009, 19:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 270
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: no puedo enviar mail correctamente

Mira para enviar mail yo utilizo este codigo que en tu caso iria en la pagina correo.php y me funciona bastante bien, claro que tienes que hacerle ciertas modificaciones:

Código PHP:
$nombre $_POST['nombre'];
$mail $_POST['mail'];
$mensajechico $_POST['mensaje_chico'];
$asunto "Quiero contactar contigo";
$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "El sr/a: " $nombre " Quiere contactarse contigo"." \r\n";
$mensaje .= "===================================" " \r\n";
$mensaje .= "Su e-mail es: " $mail " \r\n";
$mensaje .= " \r\n";
$mensaje .= "Mensaje: " $mensajechico " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
ini_set("sendmail_from""[email protected]");
mail($para$asunto$mensaje$header);

echo 
'mensaje enviado exitosamnete'
Ademas recuerda que el mail donde se envia los datos debe ser un mail creado en tu hosting. Para mas info te recomiendo te comuniques con ellos.

Espero te sirva mi ayuda
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:04.