Enviar un email despues de insertar datos en la BBDD

Muy buenas.
Necesito un poco de la ayuda de todos.
Como es logico no podemos saber todo de todo y por este motivo nuevamente acudo a vosotros.
Mi problemilla es con el envio de un mail.
Comento la jugada para que todo quede más claro.
existe un formulario de contacto que es insertado en la bbdd a traves de un php.
<div id="formulario">
        	<form id="pie" onSubmit="return validar2(this)" action="insertar-datos.php" method="post">
                    <input type="text" name="nombre" id="nombre" alt="Nombre" value="Nombre"  onfocus="cambiar(true,'nombre','Nombre')" onBlur="cambiar(false,'nombre','Nombre')"/>
                    <input type="text" name="mail" id="mail" alt="E-mail" value="E-mail" onFocus="cambiar(true,'mail','E-mail')" onBlur="cambiar(false,'mail','E-mail')" />
                    <select name="tipo" id="tipo">
                    <option value="">¿En que podemos ayudarte?</option>
                    <option value="Remedios caseros">Más información sobre:</option>
                    <option value="Plantas medicinales">Envio de articulos</option>
                    <option value="Terapias naturales">Información legal </option>
                    <option value="Diseño publicidad">Sugerencias</option>
                    <option value="Cosmetica natural">Enviarnos tus articulos</option>
               		</select>
                    <label id="msg"><p>Explicanos un poco más.</p></label>
                    <textarea name="msg" class="color" id="msg" alt="Comentario" value="Comentario" onFocus="cambiar(true,'msg','Comentario')" onBlur="cambiar(false,'msg','Comentario')"></textarea> 
                    <div id="btn_form">
                    <input type="submit" value=""  />
                    </div>
              </form>
        </div>
Hasta aquí todo claro.
mi problema es que no entiendo el porque posteriormente no es enviado un email al correo para notificar que dicho mensaje esta en la bbdd.
Aquí os dejo el php de inserción de los datos.
<?php
$conexion = mysql_connect("localhost","xxxxxxxxxxxx","xxxxxxxxxxxxxxxxxx");
        mysql_select_db("xxxxxxxxxxxxxxx",$conexion);

        // Con esta sentencia SQL insertaremos los datos en la base de datos
        mysql_query("INSERT INTO tblcontac (strNombre,strEmail,strTelefono,IntTipo,IntConocer,strComentario)
        VALUES ('{$_POST['nombre']}','{$_POST['mail']}','{$_POST['telefono']}','{$_POST['tipo']}','{$_POST['conocer']}','{$_POST['msg']}')",$conexion);
		if (mysql_errno()!=0)
{
	echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();
	mysql_close($conexion);
}	else{
	$conexion;
	mail("[correo eliminado]","Recibiste un email","Este es el cuerpo del mensaje");
	header("location:enviado.html");
	
	}
?>
Alguien sabria cual es el problema?
Por si acaso dejar claro que no es problema del hosting.
Un saludo y gracias
prueba poniendo un

<?php
if (!$_POST) {
?>
tu formulario
<?php
tu conexion
tu insertar datos en tabla
variable para pasar los datos del formulario
tu mail y variable
}
?>

el formulario deve enviar los datos en la misma pagina

solo estas enviando los datos del formulario a la db y deves pasar los datos con un if post a una variable y a su vez pasarselos al mail para poder enviarlos

este era el post que borre porque no podia probarlo
Bueno no se si tendra algun fallo haora mismo no lo puedo probar
pero aqui te dejo mi idea y no se si llegara a un gmail

crear una pagina llamada

insertar_db_mail.php

<div id="formulario">
<?php if (!$_POST) { 
?>
<form id="pie" onSubmit="return validar2(this)" action="insertar_db_mail.php" method="post">                    <input type="text" name="nombre" id="nombre" alt="Nombre" value="Nombre"  onfocus="cambiar(true,'nombre','Nombre')" onBlur="cambiar(false,'nombre','Nombre')"/>                    <input type="text" name="mail" id="mail" alt="E-mail" value="E-mail" onFocus="cambiar(true,'mail','E-mail')" onBlur="cambiar(false,'mail','E-mail')" />                    <select name="tipo" id="tipo">  
<option value="">¿En que podemos ayudarte?</option>                    <option value="Remedios caseros">Más información sobre:</option> 
<option value="Plantas medicinales">Envio de articulos</option> 
<option value="Terapias naturales">Información legal </option>  
<option value="Diseño publicidad">Sugerencias</option>                    <option value="Cosmetica natural">Enviarnos tus articulos</option>  
</select>  
<label id="msg"><p>Explicanos un poco más.</p></label>                    <textarea name="msg" class="color" id="msg" alt="Comentario" value="Comentario" onFocus="cambiar(true,'msg','Comentario')" onBlur="cambiar(false,'msg','Comentario')"></textarea>                     <div id="btn_form">  
<input type="submit" value=""  />  
</div> 
</form> 
</div>
<?php 
$conexion = mysql_connect("localhost","xxxxxxxxxxxx","xxxxxxxxxxxxxxxxxx");        mysql_select_db("xxxxxxxxxxxxxxx",$conexion);
// Con esta sentencia SQL insertaremos los datos en la base de datos 
$conexion = mysql_query("INSERT INTO tblcontac (strNombre,strEmail,strTelefono,IntTipo,IntConocer,strComentario) VALUES ('{$_POST['nombre']}','{$_POST['mail']}','{$_POST['telefono']}','{$_POST['tipo']}','{$_POST['conocer']}','{$_POST['msg']}')",$enviar); 
 if (mysql_errno()!=0) {  
echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();    mysql_close($conexion);
} else { 
$enviar .= "" .$_POST['nombre']. "\n"; 
$enviar .= "" .$_POST['mail']. "\n"; 
$enviar .= "" .$_POST['telefono']. "\n"; 
$enviar .= "" .$_POST['tipo']. "\n"; 
$enviar .= "" .$_POST['conocer']. "\n"; 
$enviar .= "" .$_POST['msg']. "\n";      
 mail("[correo eliminado]","Recibiste un email","Este es el cuerpo del mensaje",$enviar);    header("location:insertar_db_mail.php");    
}    
}
?>
bueno lo estube probando en una base que tengo con unos campos y así funciona el formulario.html en una pagina y el insertar-datos.php en otra, ahora envía los datos a la bd y al correo web, pero no al gmail un saludo

formulario.html

<div id="formulario">            
<form id="pie" onSubmit="return validar2(this)" action="insertar-datos.php" method="post">                    <input type="text" name="nombre" id="nombre" alt="Nombre" value="Nombre"  onfocus="cambiar(true,'nombre','Nombre')" onBlur="cambiar(false,'nombre','Nombre')"/>                    <input type="text" name="mail" id="mail" alt="E-mail" value="E-mail" onFocus="cambiar(true,'mail','E-mail')" onBlur="cambiar(false,'mail','E-mail')" />                    <select name="tipo" id="tipo">
<option value="">¿En que podemos ayudarte?</option><option value="Remedios caseros">Más información sobre:</option>
<option value="Plantas medicinales">Envio de articulos</option>
<option value="Terapias naturales">Información legal </option>
<option value="Diseño publicidad">Sugerencias</option>                    <option value="Cosmetica natural">Enviarnos tus articulos</option></select><label id="msg">
<p>Explicanos un poco más.</p></label>                    <textarea name="msg" class="color" id="msg" alt="Comentario" value="Comentario" onFocus="cambiar(true,'msg','Comentario')" onBlur="cambiar(false,'msg','Comentario')"></textarea>                     <div id="btn_form"><input type="submit" value=""  />                    </div>
</form>
</div>

insertar-datos.php

<?php 
$conexion = mysql_connect("localhost","tu_usuario","tu_contraseña"); mysql_select_db("tu_base"); // Con esta sentencia SQL insertaremos los datos en la base de datos 
mysql_query ("INSERT INTO tu_tabla (`campo1`, `campo2`, `campo3`, `campo4`, `campo5`, `campo6`) VALUES ('$_POST[campo1]', '$_POST[campo2]', '$_POST[campo3]', '$_POST[campo4]', '$_POST[campo5]', '$_POST[campo6]')");  
if (mysql_errno()!=0) {  
echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();    mysql_close($conexion); 
} else { 
$enviar .= "" .$_POST['campo1']. "\n"; 
$enviar .= "" .$_POST['campo2']. "\n"; 
$enviar .= "" .$_POST['campo3']. "\n"; 
$enviar .= "" .$_POST['campo4']. "\n"; 
$enviar .= "" .$_POST['campo5']. "\n"; 
$enviar .= "" .$_POST['campo6']. "\n";  mail("pon_aqui_tu_correo_web","Recibiste un email","Este es el cuerpo del mensaje",$enviar);
header("location:enviado.html");
}  
?> 
francisco1 escribió:prueba poniendo un

<?php
if (!$_POST) {
?>
tu formulario
<?php
tu conexion
tu insertar datos en tabla
variable para pasar los datos del formulario
tu mail y variable
}
?>

el formulario deve enviar los datos en la misma pagina

solo estas enviando los datos del formulario a la db y deves pasar los datos con un if post a una variable y a su vez pasarselos al mail para poder enviarlos

este era el post que borre porque no podia probarlo
Gracias por volver a postearlo.
Un saludo
Hola:

En el código de Francisco hay algo extraño:

<?php 
$conexion = mysql_connect("localhost","tu_usuario","tu_contraseña"); mysql_select_db("tu_base"); // Con esta sentencia SQL insertaremos los datos en la base de datos 
mysql_query ("INSERT INTO tu_tabla (`campo1`, `campo2`, `campo3`, `campo4`, `campo5`, `campo6`) VALUES ('$_POST[campo1]', '$_POST[campo2]', '$_POST[campo3]', '$_POST[campo4]', '$_POST[campo5]', '$_POST[campo6]')");  
if (mysql_errno()!=0) {  
echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();    mysql_close($conexion); 
} else { 
$enviar .= "" .$_POST['campo1']. "\n"; 
$enviar .= "" .$_POST['campo2']. "\n"; 
$enviar .= "" .$_POST['campo3']. "\n"; 
$enviar .= "" .$_POST['campo4']. "\n"; 
$enviar .= "" .$_POST['campo5']. "\n"; 
$enviar .= "" .$_POST['campo6']. "\n";
// $enviar debería ir en lugar de "Este es el cuerpo del mensaje", puesto que el cuarto parámetro son las cabeceras extra:
mail( 'Destinatario', 'Asunto', $enviar );
// Así que, a no ser de que campo1-6 sean cabeceras extra, el mensaje llegaría con lo que se pusiera en el tercer parámetro.
//mail("pon_aqui_tu_correo_web","Recibiste un email","Este es el cuerpo del mensaje",$enviar);

header("location:enviado.html");
}  
?>

Una duda por que dicesque al gmail no los envia?
La verdad no lo comprendo.

En realidad sí deberían llegar a gmail, aunque puede ocurrir que el remitente aparezca en una lista negra. Esto ocurre cuando se descubre que un nombre de correo se ha utilizado para generar spam. Otro motivo por el que no lleguen es por suplantación de identidad, por ejemplo, cuando se utiliza la función mail así:

$from = $_GET['email'] // Supongamos que email llega desde un formulario.
$mensaje = "Cuerpo del mensaje";
$extra     = "From: $from" . PHP_EOL;

mail( 'micorrreo@midominio', 'Algún asunto', $mensaje, $extra );

Si se envía de esta forma, se esta especificando un remitente (quien envía el correo) distinto a quien realmente envía el correo. Cuando tenemos un formulario de contacto, el remitente y el destinatario deberían ser el mismo, puesto que quien lo envía es el servidor y no el cliente. Para que lo enviara el cliente, este tendría que ingresar a su cuenta de correo y enviarlo desde ahí ¿Se entiende?
Hola skaparate fallo mio si es verdad puse uno de mas, es asi
<?php 
$conexion = mysql_connect("localhost","tu_usuario","tu_contraseña"); mysql_select_db("tu_base"); // Con esta sentencia SQL insertaremos los datos en la base de datos 
mysql_query ("INSERT INTO tu_tabla (`campo1`, `campo2`, `campo3`, `campo4`, `campo5`, `campo6`) VALUES ('$_POST[campo1]', '$_POST[campo2]', '$_POST[campo3]', '$_POST[campo4]', '$_POST[campo5]', '$_POST[campo6]')");  
if (mysql_errno()!=0) {  
echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();    mysql_close($conexion); 
} else { 
$enviar .= "" .$_POST['campo1']. "\n"; 
$enviar .= "" .$_POST['campo2']. "\n"; 
$enviar .= "" .$_POST['campo3']. "\n"; 
$enviar .= "" .$_POST['campo4']. "\n"; 
$enviar .= "" .$_POST['campo5']. "\n"; 
$enviar .= "" .$_POST['campo6']. "\n";  mail("pon_aqui_tu_correo_web","Recibiste un email",$enviar);
header("location:enviado.html");
}  
?>
La verdad que sigo sin comprender, por que sigue fallando.
Os dejo el codigo
<?php 
$conexion = mysql_connect("localhost","xxxxxxx","xxxxxxxxxx"); mysql_select_db("xxxxxxxxxxx"); // Con esta sentencia SQL insertaremos los datos en la base de datos 
mysql_query ("INSERT INTO tblcontac (`strNombre`, `strEmail`, `strTelefono`, `IntTipo`, `IntConocer`, `strComentario`) VALUES ('$_POST[nombre]', '$_POST[mail]', '$_POST[telefono]', '$_POST[tipo]', '$_POST[conocer]', '$_POST[msg]')");  
if (mysql_errno()!=0) {  
echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();    mysql_close($conexion); 
} else { 
$enviar .= "" .$_POST['nombre']. "\n"; 
$enviar .= "" .$_POST['mail']. "\n"; 
$enviar .= "" .$_POST['telefono']. "\n"; 
$enviar .= "" .$_POST['tipo']. "\n"; 
$enviar .= "" .$_POST['conocer']. "\n"; 
$enviar .= "" .$_POST['msg']. "\n";  mail("[correo eliminado]","Recibiste un email",$enviar);
header("location:enviado.html");
}  
?> 
así es como lo tengo subido al servidor!!
Mañana con más tiempo lo rebisare toda.
Un saludo
Hola prueba asi

mysql_query ("INSERT INTO tblcontac (`nombre`, `mail`, `telefono`, `tipo`, `conocer`, `msg`) VALUES ('$_POST', '$_POST', '$_POST', '$_POST', '$_POST', '$_POST')");

esto funcionara en el caso que la tabra se llame tblcontac
y los campos de la tabra se llamen nombre`, `mail`, `telefono`, `tipo`, `conocer`, `msg

si es al contrario que la tabla se llama tblcontac y los campos de la tabla se llaman strNombre`, `strEmail`, `strTelefono`, `IntTipo`, `IntConocer`, `strComentario

pues deveras cambiarlos en los VALUES del mysql_query INSERT y en los datos del form y poner lo mismo, un saludo
mysql_query ("INSERT INTO tblcontac (`nombre`, `mail`, `telefono`, `tipo`, `conocer`, `msg`) VALUES ('$_POST', '$_POST', '$_POST', '$_POST', '$_POST', '$_POST')");
Esa posiblemente sea la solucion, tiene mucha razon el de arriba mio :D