使用 Centos7 伺服器連接到我的電子郵件時遇到問題



我用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>";

通过在 Gmail 上启用 IMAP 协议并启用对安全性较低的应用程序的访问,代码确实如此。 不给任何类型的错误。

当我尝试在 Centos 7 服务器机器中执行此代码时,会出现此问题。 我安装了与我的PHP 7.3版本兼容的IMAP协议,使用以下命令行:yum --enablerepo=centos-sclo-sclo-testing install sclo-php73-php-imapservice imapd restart。 成功下载软件包后,我重新启动服务器计算机并检查

<?php
phpinfo(); 
?> 

请注意,IMAP 已启用。

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

在此检查之后,如果我尝试运行初始代码,则输出时会出现此错误消息:警告:imap_open():即使我启用了 imap 并通过激活也无法打开流 {imap.gmail.com:993/ssl/novalidate-cert}。

密码和登录正确。

这个问题似乎与PHP无关,而是与连接有关,特别是如果脚本在不同的机器上工作。

您需要检查两件事。

  • 是否可以在端口 993 上进行出站连接(是否对 OUT 连接开放)。您可以尝试 telnet 进行检查,如果它不起作用,请验证您的 Linux 防火墙设置。
  • 您是否
  • 启用了 SELinux,如果启用了,您是否检查了审核日志中的 AVC 拒绝?如果您遇到问题,您可能需要启用httpd_can_network_connect甚至执行 audit2allow,因为端口可能是非标准的。小心您正在做的事情,因为这可能会破坏服务器的安全性。

最新更新