La cosa se veía fácil, hasta que me encontré el primer error 🙂
Warning: require_once(Mail.php) [function.require-once]: failed to open stream: No such file or directory in F:\mediawiki\includes\UserMailer.php on line 91
Fatal error: require_once() [function.require]: Failed opening required ‘Mail.php’ (include_path=’F:\mediawiki;F:\mediawiki/includes;F:\mediawiki/languages;.;C:\php5\pear’) in F:\mediawiki\includes\UserMailer.php on line 91
chan!
veamos que encontramos en la configuración.
El error dice que falta un archivo, en este caso Mail.php . No está en mi disco, según google es un archivito de PEAR. No, no lo tengo instalado… y tampoco quiero tenerlo.
Se supone que $wgSMTP es un array con la configuración del SMTP, pero sigue sin funcionar.
En la página de settings de mediawiki hay algo que me puede servir: un archivo de log. Lo activamos y veamos que pasa.
El mismo error y nada que me ayude en el log, considerando mis exigua experiencia con mediawiki y su debug mode.
Volviendo a UserMailer.php, me encuentro con la siguiente línea:
if (is_array( $wgSMTP )) {
Ah, que bonito.
y que pasa si $wgSMTP no es array? ah!?
mmm hurgando un poco más me encuentro con:
* This function will perform a direct (authenticated) login to
* a SMTP Server to use for mail relaying if ‘wgSMTP’ specifies an
* array of parameters. It requires PEAR:Mail to do that.
* Otherwise it just uses the standard PHP ‘mail’ function.
mmm, standard PHP ‘mail’ function… ahí estaba lo de PEAR y… probemos con $wgSMTP = true; sí, así, tal cual.
Con eso, al menos no necesitaremos (en teoría) el mail.php y usaremos the standard mail function de PHP … chan! (configurada correctamente en php.ini)
mmm, nuevo mensaje de error:
No fue posible enviar el correo de confirmación. Por favor, comprueba que no haya caracteres inválidos en la dirección de correo que has ingresado.
veamos el log…
Error sending mail: SMTP server response: 454 5.7.3 Client was not authenticated.
a ver… revisemos la configuración de php.ini. Está bien. La prueba por telnet comprueba que efectivamente no me he autenticado… diablos y cómo hago eso desde php?
googleando, no encuentro casi nada, excepto un script en php para hacer la autenticación… hummm, pero esa no es la idea… tendría que modificar la función mail de php… y con la escasa experiencia con el lenguaje… mmm. Veremos si encontramos algo más.
Siguiendo con la cosa… no encontré nada, así que a investigar y codearemos un poco en php al parecer 🙂
encontré fsockopen(), creo que me será útil.
Está conectando, ahora a mirar si podemos autenticarnos en el server.
La autenticación falla.
500 5.3.3 Unrecognized command
después de solicitar la password :S si lo hago a mano, funciona… en auto, no anda ni pa’trás.
Luego de prueba tras prueba, la solución fue enviar con fputs, cada línea de la conversación con el SMTP. A excepción del asunto y cuerpo del mensaje.
Ahora ya está funcionando… al menos para pedir la confirmación de la cuenta de correo.
[]
[Dream Theater – Beyond this life]
sl3