A las 2 primeras dudas aqui te dejo el manual correspondiente
http://www.php.net/manual/es/function.mail.php
Respecto a las otras 2 siguientes aqui te dejo el manual
http://es1.php.net/manual/es/function.empty.php
if(!empty($variable)) es mucho mejor que usar if($variable != "")
empty comprueba las siguientes expresiones y las considera como vacias
"" (una cadena vacía)
0 (0 como un integer)
0.0 (0 como un float)
"0" (0 como un string)
NULL
FALSE
array() (un array vacío)
$var; (una variable declarada, pero sin un valor)
mientras que != ""
solo comprueba una cadena vacia
para usar una sola comprobacion