Назад | Перейти на главную страницу

PHP не может подключиться к GMail через IMAP [Отредактировано !!]

У меня есть код php, который я пытаюсь использовать для подключения к Gmail с помощью imap. Вот код:

$hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
$tmp_username = 'username';
$tmp_password = 'password';
$inbox = imap_open($hostname, $username, $password) or die(imap_last_error());

И я получаю эту ошибку каждый раз, когда пытаюсь подключиться:

Предупреждение: imap_open () [function.imap-open]: не удалось открыть поток {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX в /var/www/PHP/EmailScript.php в строке 14 Вход прерван

Я не понимаю, что может быть не так !! Я слышал о людях с ошибками SSL, но это не одна из них. Пожалуйста, помогите мне пожалуйста !!!!!

Изменить: при попытке подключиться к imap.gmail.com через telnet-ssl я получаю следующий вывод:

Пробуем 74.125.155.109 ... Подключен к gmail-imap.l.google.com. Экранирующий символ - '^]'.

И ничего не происходит

Используйте эту команду, чтобы запустить сеанс ....

openssl s_client -connect imap.gmail.com:993

если я это сделаю, я получу это ...

* OK Gimap ready for requests from <ip_address> 16if41262875qci.66

Если вы используете telnet напрямую на 993, он не должен работать правильно, потому что telnet не использует SSL. Используйте что-нибудь вроде telnet-ssl или stunnel вместо этого, чтобы убедиться, что вы подключаетесь к 993 через SSL. Как только это будет сделано, попробуйте посмотреть, получите ли вы приветственное сообщение, а затем попробуйте несколько команд IMAP, чтобы проверить, работают ли они.

Сначала убедитесь, что вы можете подключиться к серверу IMAP с машины:

telnet imap.gmail.com 993

Если соединение работает, проверьте, установлен ли SSL с помощью php-imap, используя phpinfo (), вы должны увидеть что-то вроде этого

imap
IMAP c-Client Version   2004
SSL Support     enabled
Kerberos Support        enabled 

Другие идеи в аналогичной теме в Переполнение стека