Prueba con
empty, asi podras saber las que vienen vacias:
Código PHP:
foreach($_POST as $nombre_campo => $valor)
{
if( !empty ( $valor ) ) {
$asignacion = "\$" . $nombre_campo . " = '" . $valor . "';";
$primero= substr($asignacion,1,-1);
$primero=str_replace("'","",$primero);
$texto .= $primero."\n\n";//doble espacio
}
}
mail ($destino, $subject, $texto, $headers);
Saludos.