Obejście dla funkcji IMAP PHP? Próbujesz pracować z pocztą przychodzącą na localhost za pomocą XAMPP

W projekcie, nad którym obecnie pracuję, próbuję dodać funkcjonalność, w której mogę zmienić status biletu z „zamkniętego” na „ponownie otwarty”, gdy użytkownik wysyła wiadomość e-mail do działu pomocy technicznej. Chciałbym również zapisać ich odpowiedź na e-mail w bazie danych.

Problem, z którym się spotykam, polega na tym, że nie mogę uzyskać funkcji IMAP PHP, aby działała na mojej obecnej konfiguracji Apache. Patrząc na kilka postów tutaj na stackoverflow i inne miejsca, wygląda na to, że OpenSSL nie jest włączony w standardowej konfiguracji. Na przykład, gdy uruchomię ten kod:

<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>

Dostaję błąd:

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

Czy jest coś, co mogę zrobić, poza rekompilacją PHP, aby naśladować funkcjonalność IMAP na moim lokalnym komputerze, aby móc dalej rozwijać funkcjonalność pracy z pocztą elektroniczną (e-mailem)?

Kilka uwag na temat mojej obecnej konfiguracji, na wypadek gdyby to pomogło:

OS X 10.7.4PHP v.5.3.1

AKTUALIZACJA -

Jestem prawie tam (dzięki dAm2K)!

Zainstalowałem Stunnel (używając Mac Portów), ostatecznie skonfigurowałem wszystko i uruchomiłem polecenie:

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

(Z jakiegokolwiek powodu musiałem dodać ścieżkę do pliku .conf)

Teraz mój kod wygląda tak:

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

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

Teraz, gdy ładuję stronę, po prostu zawiesza się na około 30 sekund i wyświetla ostrzeżenie:

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

Co ciekawe, jeśli zmienię $ connect na:

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

lub

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

Dostaję oryginalny błąd, który był:

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

Jakieś pomysły? Tylko zgadnij, ale czy może to mieć coś wspólnego z konfiguracją stunnel, jak posiadanie certyfikatu samopodpisanego lub czegoś z brakującym plikiem stunnel.conf?

Wielkie dzięki.

Tim

questionAnswers(1)

yourAnswerToTheQuestion