Я разрабатываю веб-приложение, которое подключается к почтовому ящику IMAP и извлекает электронные письма как часть своей функциональности.
Это приложение PHP, и я подключаюсь так:
public function connect()
{
/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = $this->username;
$password = $this->password;
/* try to connect */
$this->inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
}
Локальная разработка на моем Mac была прекрасна, я мог подключаться и получать электронные письма. Однако теперь, когда я установил приложение на свой сервер веб-хостов, я получаю следующую ошибку:
Cannot connect to Gmail: Can't connect to gmail-imap.l.google.com,993: Connection timed out
После проверки у моего хостинг-провайдера они сказали мне, что исходящие соединения на порту 993 заблокированы. Есть ли что-нибудь вокруг этого? В противном случае мне нужно перейти на выделенный сервер: S
Вам нужно будет выполнить обновление или спросить свой хост, могут ли они открыть этот порт.
На самом деле вы сами ответили - порт 993, и афаик нет никакого способа обойти это.
Обойти блок с портами невозможно. Вместо обновления до выделенного сервера вы можете просто перейти к хостинг-провайдеру, который не блокирует порт, или вы можете посмотреть, является ли вариант POP3, предпочтительнее SSL. Не менее безопасно и даже проще кодировать.