Hola, feliz año nuevo a todos!
Después de leer el hilo completo me gustaría aportar algo más de información. Vayamos por partes para ir aterrizando un poco el problema y ver como se soluciona esto.
Servidor de correoTodos los servidores, o la gran mayoría pueden enviar email de dos formas:
1. Sendmal: Es un script nativo del servidor, que por lo general se encuentra instalado en "/usr/sbin/sendmail" (seguro que lo has visto por allí) para hacer uso de la función
mail(). Los foros, blogs y cms se fian de está función porque es la opción que casi siempre viene por defecto en todos los servidores que contratamos. Pero entonces, ¿por qué no lo puedo usar? Bueno, principalmente es porque es un poco inseguro, y a partir de esa inseguridad los demás servidores prefieren rechazar o enviarlo a correo no deseado. El tema de la seguridad lo puedes buscar más a fondo.
2. SMTP: Es un protoco, así como ftp, http, entre otros, son protocolos que usan puertos estandarizados y que sirven para comunicarse con los servidores entre sí. Es como hablar un mismo idioma. SMTP sirve para eso mismo, enviar y recibir correos pero por así decirlo, "firmados", porque para ello ocupas un usuario y una contraseña. Así le dices a los demás que ese eres vos, que vienes de un servidor con un nombre definido y que tienes por lo tanto los permisos correspondientes para enviar correos.
Con lo anterior, ya tienes unas pinceladas de porqué y para qué se usa cada tipo de envío.
En cuanto a base de datos, creo que el problema no radica allí, puesto que solo se debe tomar el valor de "email" y de pronto el nombre de usuario; y aunque el correo esté mal, el correo siempre se trata de enviar, al rato te va a llegar una notificación de que ese correo no existe.
Te sugiero que hagas un archivo php común y corriente y que hagas una función sumamente siempre que envíe un correo, toma este ejemplo:
<?php
$para= "alguien@ejemplo.com";
$titulo= "Hola!";
$mensaje= "hola! esto es una prueba!";
if (mail($para, $titulo, $mensaje)) {
echo("mensaje enviado correctamente");
} else {
echo("Ha ocurrido un error");
}
?>
Fíjate a ver como te va, y si todo anda bien seguimos con smtp