Q:

función mail() en PHP no envía correo, sin mensajes de error. Usando XAMMP

Estoy tratando de usar la función mail() en PHP con APACHE en XAMMP.
En un principio salía este error: 

Warning: mail(): Failed to connect to mailserver at "localhost" port
  25, verify your "SMTP" and "smtp_port" setting in php.ini or use
  ini_set() in C:\xampp\htdocs\php\Evaluacion PHP\pages\enviar_mail.php
  on line 33

En "php.ini" tenía todo bien, así que me fijé en la carpeta "sendmail", y en el archivo "sendmail.ini".
Modificando en "sendmail.ini" por el siguiente valor: "smtp_server=localhost" se solucionó (o sea, deja de aparecer el error y aparece la pantalla en blanco), pero no llega ningún correo ni tengo manera de ver donde está el error.. alguna idea?
P.D: Mi idea no es usar PHPMailer, sino la función mail() porque es para un práctico que pide expresamente usar ése método, por lo que supongo que el problema estaría en la configuración de Apache.

A:

El error está en Mercury (mejor dicho, en el uso de Mercury). Para usar tu servidor como servidor de correos es necesario que tengas una IP pública fija y registros MX en el servidor DNS que alberga tu dominio; es posible que el correo haya salido de tu computadora (o no) sin que te dieras cuenta y que el servidor de destino lo haya rechazado, recomiendo dos cosas aquí:

Envía el correo a una cuenta local de Mercury SMTP para que el MTA entregue el correo de forma local.
Usa un servidor SMTP externo como GMAIL.

Puedes usar fake sendmail for Windows, en el .ini de fakesendmail ingresa tus credenciales de GMAIL similar a esto:
smtp_server=smtp.gmail.com
smtp_port=456
smtp_ssl=ssl
auth_username=algun_mail@gmail.com
auth_password=********
force_sender=algun_mail@gmail.com

Después en el ini de PHP quitas toda la configuración y cambias el sendmail path:
sendmail_path = "C:\ruta_fakesendmail\sendmail.exe -t"

No te olvides de configurar la cuenta de GMAIL para que acepte conexiones SMTP externas y si usas 2 step auth debes crear una contraseña sepecial para este servicio.

