Ayuda php y html

D

Bueno este es mi problema.
He echo un formulario de contacto y es el siguiente.
<?php
if(isset($POST['accion']) && $POST['accion']=="enviar_comentario" ){
$nombre = addslashes($POST['nombre']);
$mensaje = addslashes($
POST['mensaje']);
if(mail("[email protected]","Formulario de Contacto",$nombre,$mensaje)){
echo "Gracias por enviar el email, pronto lo leeremos.";
}else{
echo "No se pudo enviar el email.";
}
}else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Contacto</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="wrapper">
<div id="header">

	<h1><a href="index.html" title="home"><span style="font-style: italic;">HERRERA GALERA</span></a></h1>
	<div id="navigation">
		<ul>
			<li class="selected"><a href="index.html" title="Inicio">Inicio</a></li>
			<li><a href="Mercantil.html" title="Mercantil">Mercantil</a></li>
			<li><a href="laboral.html" title="Laboral">Laboral</a></li>
			<li><a href="contable.html" title="Contable">Contable</a></li>
			<li><a href="contacto.html" title="Contacto">Contacto</a></li>
		</ul>
	</div><!--end navigation-->

	<img id="imagem" src="images/business.jpg" alt="Business" />
	</div>

<div id="content">
	<div id="col_left">
		<div id="welcome">
			<h2>Contacto</h2>
                      <form action="contactar.php" method="post">

<p>
<label for="nombre">Nombre</label>:<br />
<input name="nombre" type="text" id="nombre" />
<br>
<label for="email">Email</label>:<br />
<input name="email" type="text" id="email" />
<br>
<label for="mensaje">Mensaje</label>:<br />
<textarea name="mensaje"></textarea>
</p>
<input type="submit" value="Enviar" />
<input type="hidden" name="accion" value="enviar_comentario">
</p>
</form>
<?}?>

		</div><!--end welcome-->

Bueno ese formulario va perfecto pero no me manda el email porque no lo tengo asignado en el encabezado pero cuando lo pongo de la siguiente forma añadiendo para que se envie el e-mail me dice que no se puede enviar el mensaje es decir que el mensaje no ha sido enviado.
Dejo el HTML.

<?php
if(isset($POST['accion']) && $POST['accion']=="enviar_comentario" ){
$nombre = addslashes($POST['nombre']);
$email = addslashes($
POST['email']);
$mensaje = addslashes($_POST['mensaje']);
if(mail("[email protected]","Formulario de Contacto",$nombre,$email,$mensaje)){
echo "Gracias por enviar el email, pronto lo leeremos.";
}else{
echo "No se pudo enviar el email.";
}
}else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Contacto</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="wrapper">
<div id="header">

	<h1><a href="index.html" title="home"><span style="font-style: italic;">HERRERA GALERA</span></a></h1>
	<div id="navigation">
		<ul>
			<li class="selected"><a href="index.html" title="Inicio">Inicio</a></li>
			<li><a href="Mercantil.html" title="Mercantil">Mercantil</a></li>
			<li><a href="laboral.html" title="Laboral">Laboral</a></li>
			<li><a href="contable.html" title="Contable">Contable</a></li>
			<li><a href="contacto.html" title="Contacto">Contacto</a></li>
		</ul>
	</div><!--end navigation-->

	<img id="imagem" src="images/business.jpg" alt="Business" />
	</div>

<div id="content">
	<div id="col_left">
		<div id="welcome">
			<h2>Contacto</h2>
                      <form action="contactar.php" method="post">

<p>
<label for="nombre">Nombre</label>:<br />
<input name="nombre" type="text" id="nombre" />
<br>
<label for="email">Email</label>:<br />
<input name="email" type="text" id="email" />
<br>
<label for="mensaje">Mensaje</label>:<br />
<textarea name="mensaje"></textarea>
</p>
<input type="submit" value="Enviar" />
<input type="hidden" name="accion" value="enviar_comentario">
</p>
</form>
<?}?>

¿Qué puede pasar?
Saludos

NeB1

#1 Por ejemplo, que pongas mal los parámetros, la función mail no se usa así, es así:

mail($destinatario , $subject, $mensaje,$headers)

donde $headers es completamente opcional y es para añadir 'metadata', el campo FROM, añadir copias carbon y carbon ocultas, añadir archivos adjuntos, etc. Siempre con el siguiente formato:

Cabecera1 : valor1 \r\n
Cabecera2 : valor2 \r\n

ejemplo:

$para  = '[email protected]' . ', '; // atención a la coma
$para .= '[email protected]';

// subject
$titulo = 'Recordatorio de cumpleaños para Agosto';


// message
$mensaje = '
<html>
<head>
  <title>Recordatorio de cumpleaños para Agosto</title>
</head>
<body>
  <p>¡Estos son los cumpleaños para Agosto!</p>
  <table>
    <tr>
      <th>Quien</th><th>Día</th><th>Mes</th><th>Año</th>
    </tr>
    <tr>
      <td>Joe</td><td>3</td><td>Agosto</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17</td><td>Agosto</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';
// Para enviar un correo HTML mail, la cabecera Content-type debe fijarse
$cabeceras  = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Cabeceras adicionales
$cabeceras .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$cabeceras .= 'From: Recordatorio <[email protected]>' . "\r\n";
$cabeceras .= 'Cc: [email protected]' . "\r\n";
$cabeceras .= 'Bcc: [email protected]' . "\r\n";

// Mail it
mail($para, $titulo, $mensaje, $cabeceras);

Más info aquí:
http://es.php.net/manual/es/function.mail.php

Usuarios habituales