Solução alternativa para funções PHP IMAP? Tentando trabalhar com o email recebido no host local usando o XAMPP

No projeto em que estou trabalhando agora, estou tentando adicionar a funcionalidade onde posso alterar o status de um ticket de 'fechado' para 'reaberto' quando o usuário envia um email para o suporte técnico. Eu também gostaria de salvar sua resposta de e-mail para o banco de dados.

O problema que estou correndo é que eu não consigo fazer com que as funções IMAP do PHP funcionem na minha configuração atual do Apache. De olhar para alguns posts aqui no stackoverflow e em outros lugares, parece que o problema é que o OpenSSL não está habilitado na configuração padrão. Por exemplo, quando eu executo 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>

Eu recebo o erro:

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

Existe alguma coisa que eu possa fazer, além de recompilar o PHP, para imitar a funcionalidade IMAP em minha máquina local para poder continuar desenvolvendo a funcionalidade de trabalhar com email (piping de email)?

Algumas notas na minha configuração atual, apenas no caso de ajudar:

OS X 10.7.4PHP v.5.3.1

ATUALIZAÇÃO -

Eu estou quase lá (graças ao dAm2K)!

Eu instalei Stunnel (usando Mac Ports), finalmente configurei tudo e executei o comando:

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

(Por qualquer motivo eu tive que adicionar o caminho para o arquivo .conf)

Agora meu código é assim:

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

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

Agora, quando eu carrego a página, ela fica pendurada por 30 segundos ou mais e dá o aviso:

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

O que é interessante é que se eu mudar $ connect to:

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

ou

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

Eu recebo o erro original, que foi:

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

Alguma ideia? Apenas um palpite, mas poderia ser algo relacionado à configuração do stunnel, como ter um certificado autoassinado ou algo do tipo stunnel.conf que estou perdendo?

Muito obrigado.

Tim

questionAnswers(1)

yourAnswerToTheQuestion