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:
<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);
?>
Eu recebo o erro:
Can't open mailbox {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: invalid remote specification.
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.1ATUALIZAÇÃO -
Eu estou quase lá (graças ao dAm2K)!
Eu instalei Stunnel (usando Mac Ports), finalmente configurei tudo e executei o comando:
sudo stunnel /opt/local/etc/stunnel/stunnel.conf -c -d 127.0.0.1:443 -r imap.gmail.com:993
(Por qualquer motivo eu tive que adicionar o caminho para o arquivo .conf)
Agora meu código é assim:
<?php
$connect = "{localhost:443}INBOX";
$user = "my email address @gmail.com";
$pass = "my password";
$mailbox = imap_open($connect, $user, $pass);
?>
Agora, quando eu carrego a página, ela fica pendurada por 30 segundos ou mais e dá o aviso:
Notice: Unknown: Connection failed to localhost,443: Operation timed out (errflg=2) in Unknown on line 0
O que é interessante é que se eu mudar $ connect to:
$connect = "{localhost:443/ssl}INBOX";
ou
$connect = "{localhost:443/novalidate-cert}INBOX";
Eu recebo o erro original, que foi:
Notice: Unknown: Can't open mailbox {localhost:443/novalidate-cert}INBOX: invalid remote specification (errflg=2) in Unknown on line 0
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