Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2012, 16:48
kenyis01
 
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 13 años, 11 meses
Puntos: 0
Problema con formulario de contacto, función mail ()

Buenas, tengo un formulario de contacto pero cuando trato de enviar un mail me tira el siguiente error:

Warning: mail() [function.mail]: SMTP server response: 554 No se permite el envio de correo sin especificar una cuenta valida desde donde sale el correo. in \\hmfsw\web\DTCWIN108\centroficch.com.ar\public_ht ml\contacto.php on line 207

La línea 207 es la siguiente:

if(mail($dest,$asunto,$cuerpo,$headers))

Aquí el código entero:

Código PHP:
Ver original
  1. <?php
  2.         if(isset($_POST['boton'])){
  3.             if($_POST['nombre'] == ''){
  4.                 $errors[1] = '<span class="error">Ingrese su nombre</span>';
  5.             }else if($_POST['email'] == '' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email'])){
  6.                 $errors[2] = '<span class="error">Ingrese un email correcto</span>';
  7.             }else if($_POST['asunto'] == ''){
  8.                 $errors[3] = '<span class="error">Ingrese un asunto</span>';
  9.             }else if($_POST['mensaje'] == ''){
  10.                 $errors[4] = '<span class="error">Ingrese un mensaje</span>';
  11.             }else{
  12.                 $dest = "[email protected]"; //Email de destino
  13.                 $nombre = $_POST['nombre'];
  14.                 $email = $_POST['email'];
  15.                 $asunto = $_POST['asunto']; //Asunto
  16.                 $cuerpo = $_POST['mensaje']; //Cuerpo del mensaje
  17.                 //Cabeceras del correo
  18.                 $headers = "From: $nombre $email \r\n"; //Quien envia?
  19.                 $headers .= "X-Mailer: PHP5 \r\n";
  20.                 $headers .= 'MIME-Version: 1.0' . "\r\n";
  21.                 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; //
  22.                 if(mail($dest,$asunto,$cuerpo,$headers)){
  23.                     $result = '<div class="result_ok">Email enviado correctamente </div>';
  24.                     // si el envio fue exitoso reseteamos lo que el usuario escribio:
  25.                     $_POST['nombre'] = '';
  26.                     $_POST['email'] = '';
  27.                     $_POST['asunto'] = '';
  28.                     $_POST['mensaje'] = '';
  29.                 }else{
  30.                     $result = '<div class="result_fail">Hubo un error al enviar el mensaje </div>';
  31.                 }
  32.             }
  33.         }
  34.     ?>
  35.         <form class='contacto' method='POST' action=''>
  36.             <div><label>Tu Nombre:</label><input type='text' class='nombre' name='nombre' value='<?php echo @$_POST['nombre']; ?>'><?php echo @$errors[1] ?></div>
  37.             <div><label>Tu Email:</label><input type='text' class='email' name='email' value='<?php echo @$_POST['email']; ?>'><?php echo @$errors[2] ?></div>
  38.             <div><label>Asunto:</label><input type='text' class='asunto' name='asunto' value='<?php echo @$_POST['asunto']; ?>'><?php echo @$errors[3] ?></div>
  39.             <div><label>Mensaje:</label><textarea rows='6' class='mensaje' name='mensaje'><?php echo @$_POST['mensaje']; ?></textarea><?php echo @$errors[4] ?></div>
  40.             <div><input type='submit' value='ENVIAR MENSAJE' class='boton' name='boton'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='reset' value='BORRAR INFORMACIÓN' class='boton' name='boton2'></div>
  41.             <?php echo @$result; ?>
  42.         </form>

Lo consulte con el soporte técnico de Dattatec pero su respuesta fue:

Cita:
Estimado Usuario:

Le comunico que el error se presenta porque esta utilizando un salto de linea incorrecto, tenga presente que usted posee un plan bajo plataforma windows en donde el salto de linea no se representa con "\n" sino que debe hacerlo mediante "\r\n" , por favor tenga a bien consultar la ayuda oficial de la funcion mail() de php para mas informacion
Tenia un par de saltos de linea mal, pero los arregle e igualmente el error persiste, alguna solución? Gracias de antemano.