Проблема с подключением к моей электронной почте с сервером Centos7 - PullRequest
0 голосов
/ 19 февраля 2020

Я разработал простой код на языке php для подключения к своей электронной почте и подсчета количества полученных электронных писем с использованием локального сервера Window 10.

<?php
// server IMAP per la connessione
$server = "{imap.gmail.com:993/ssl/novalidate-cert}";

// account Gmail
$login = 'login@gmail.com';
// password per l'accesso a Gmail
$password = 'password';

// connessione IMAP ad un account Gmail
$connessione = imap_open($server, $login, $password);

$conteggio = imap_num_msg($connessione);

echo $conteggio."<br>";

Включив протокол IMAP в Gmail и разрешении доступа к менее защищенным приложениям код не выдает никаких ошибок.

Проблема возникает, когда я пытаюсь выполнить этот код на компьютере сервера Centos 7. Я установил протокол IMAP, совместимый с моей версией PHP 7.3, с помощью этой командной строки: yum --enablerepo = centos-sclo-sclo-testing install sclo-php73- php -imapservice imapd restart. Как только пакет успешно загружен, я перезагружаю серверный компьютер и go проверяю

<?php

phpinfo(); 

?> 

и замечаю, что IMAP включен.

imap
IMAP c-Client Version   2007f
SSL Support enabled
Kerberos Support    enabled

После этой проверки, если я попробуйте запустить мой исходный код, это сообщение об ошибке появляется у меня на выходе: предупреждение: imap_open (): не удалось открыть поток {imap.gmail.com:993/ssl/novalidate-cert}, даже если я включил imap и actvaing.

PS. пароль и логин верны.

1 Ответ

0 голосов
/ 19 февраля 2020

Кажется, что проблема не связана с PHP, а связана с подключением, особенно если скрипт работает на другом компьютере.

Есть две вещи, которые необходимо проверить.

  • Можно ли использовать исходящее соединение через порт 993 (открыто ли оно для OUT-соединений). Вы можете попробовать lnet, чтобы проверить это, и если он не работает, проверьте настройки Linux Брандмауэра.
  • У вас включен SE Linux, и если вы это сделали, вы проверили свой журнал аудита на наличие AV C опровержения? Если у вас есть проблемы, вам может понадобиться включить httpd_can_network_connect или даже сделать Audit2allow, поскольку порт может быть нестандартным. Будьте осторожны в том, что вы делаете, так как вы можете нарушить безопасность на вашем сервере.
...