¿Solución para las funciones PHP IMAP? Intentando trabajar con el correo electrónico entrante en localhost usando XAMPP

En el proyecto en el que estoy trabajando ahora mismo, estoy intentando agregar la funcionalidad donde puedo cambiar el estado de un ticket de "cerrado" a "reabierto" cuando el usuario envía un correo electrónico a la mesa de soporte. También me gustaría guardar su respuesta de correo electrónico a la base de datos.

El problema que estoy encontrando es que no puedo conseguir que las funciones IMAP de PHP funcionen en mi configuración actual de Apache. De mirar bastantes publicaciones aquí en stackoverflow y otros lugares, parece que el problema es que OpenSSL no está habilitado en la configuración estándar. Así, por ejemplo, cuando ejecuto este código:

<code><h1>IMAP testing!</h1>
<?php
$connect = "{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX";
$user    = "my email address @gmail.com";
$pass    = "my password";

$mailbox = imap_open($connect, $user, $pass);
?>
</code>

Me sale el error:

<code>Can't open mailbox {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: invalid remote specification.
</code>

¿Hay algo que pueda hacer, aparte de recompilar PHP, para imitar la funcionalidad IMAP en mi máquina local para poder continuar desarrollando la funcionalidad de trabajar con correo electrónico (canalización de correo electrónico)?

Algunas notas sobre mi configuración actual, por si acaso ayuda:

OS X 10.7.4PHP v.5.3.1

ACTUALIZACIÓN -

Estoy casi ahí (gracias a dAm2K)!

Instalé Stunnel (usando los puertos de Mac), configuré todo finalmente y ejecuté el comando:

<code>sudo stunnel /opt/local/etc/stunnel/stunnel.conf -c -d 127.0.0.1:443 -r imap.gmail.com:993
</code>

(Por alguna razón tuve que agregar la ruta al archivo .conf)

Ahora mi código se ve así:

<code><?php
$connect = "{localhost:443}INBOX";
$user    = "my email address @gmail.com";
$pass    = "my password";

$mailbox = imap_open($connect, $user, $pass);
?>
</code>

Ahora, cuando cargo la página, se cuelga durante unos 30 segundos aproximadamente y muestra la advertencia:

<code>Notice: Unknown: Connection failed to localhost,443: Operation timed out (errflg=2) in Unknown on line 0
</code>

Lo que es interesante es que si cambio $ conectar a:

<code>$connect = "{localhost:443/ssl}INBOX";
</code>

o

<code>$connect = "{localhost:443/novalidate-cert}INBOX";
</code>

Me sale el error original, que fue:

<code>Notice: Unknown: Can't open mailbox {localhost:443/novalidate-cert}INBOX: invalid remote specification (errflg=2) in Unknown on line 0
</code>

¿Algunas ideas? Solo una conjetura, pero ¿podría tener algo que ver con la configuración del stunnel, como tener un certificado autofirmado o algo con el archivo stunnel.conf que me estoy perdiendo?

Muchas gracias.

Tim

Respuestas a la pregunta(1)

Su respuesta a la pregunta