Antes de un header() no puede existir nada de HTML/salida al navegedor ..
Si te fijas como funciona PHP . .para el momento que se envia tu e-mail y decides redireccionar .. al navegador todavía no le ha llegado nada de tu HTML que puedas haber compuesto en tu script como salida y por ende no es necesario (y header() "avisa" de eso mismo ..)
Esto para PHP no tiene sentido:
Código PHP:
<html>
<head>
</head>
<body>
<?
mail();
header();
?>
</body>
</html>
pero si ..
Código PHP:
<?
mail();
header(...);
?>
Puedes usar condicionales para "redireccionar" a una página o mostrar algun error (mensaje) en dicho script tipo
Código PHP:
<?
if (mail(...)){
header ("Location: ....");
exit;
} else {
?>
<html>
<head>
</head>
<body>
<?
// Ejemplo .. PHP "dá" salida a algo ...
echo "bla blabla"; ?>
</body>
</html>
<?
}
?>
Si se envió el e-mail correctamente . .se redirecciona .. sino, PHP "entrega" una página HTML completa (en el ejemplo).
Un saludo,