给出PHP 7.2,php ssh2扩展名和Ubuntu 18.04.1 LTS。我想通过ssh服务器与imap服务器通信。
直接连接:
$stream = fsockopen('ssl://imap.gmail.com', 993);
for($i = 0; $i<=5; $i++){
var_dump(fgets($stream));
sleep(2);
}
结果:
"* OK Gimap ready for requests from 178.150.167.73 u11mb208610367lfc
"
通过ssh连接:
$ssh_conn = ssh2_connect($sshIp, $sshPort);
if ($ssh_conn && ssh2_auth_password($ssh_conn, $sshUsername, $sshPassword)) {
$stream = ssh2_tunnel($ssh_conn, 'imap.gmail.com', 993);
for ($i = 0; $i <= 5; $i++) {
var_dump(fgets($stream));
sleep(2);
}
}
输出:
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
SSH服务器100%工作。我尝试了其他工具,包括通过ssh进行imap的额外php扩展。但是我需要使用这种直接方式。