Cita:
Iniciado por Triby
No estas inicializando $mensaje y, como no existe, no se le puede agregar contenido...
$mensaje .= 'Si no la defines, no existe';
En la primera asignacion elimina el punto, dejando solo el signo igual:
$mensaje = 'Este es el valor inicial';
$mensaje .= 'Esto se agrega sin problemas.';
Pese a que no sea una muy buena praxis, no es necesario inicializarla para que funcione.
Por otro lado es lógico que no te envíe la información del formulario:
Estás llamando a las claves del array $_POST con la primera letra en minúscula, mientras que en el formulario lo haces en mayúscula. En php $_POST['apellido'] <> $_POST['Apellido']. Además, concretamente en apellido falla el género, ya que en el formulario está en singular.
Un saludo ;)