Здравствуйте товарищи! Писал на stackoverflow, размещал проект на западных фриланс сайтах. Неужели никто не может решить проблему ? Нкжно всего лишь несколько строк кода. Ладно, проблема такая: нужно подключиться к imap серверу (любому серверу imap) через ssh. Например, используя следующий код я получаю приветствие с imap сервера:
* OK Gimap ready for requests from IP b13mb128012598ltq
Код:
$stream = fsockopen('ssl://[login to view URL]', 993);
for($i = 0; $i<=5; $i++){
var_dump(fgets($stream));
sleep(2);
}
А надо чтоб работало через ssh2_tunnel, тоесть в моем понимании пробросить туннель через удаленный ssh сервер к imap серверу. Использовать именно ssh2_tunnel, решение на уровне системы меня не устраивает. Выглядеть код должен предположительно следующим образом, этот код не работает, сервер возвращает вместо приветствия пустую строку. Я думаю, что проблема в ssl. Надо наверное завернуть поток в зашифрованый ssl. Я это пробую на ubuntu 18, php 7.2. ssh2 расширение установлено и корректно работает.
Поаз всех ошибок включен. Никаких ошибок, замечаний по коду ниже интерпретатор не выдает.
Задача: подключится к imap серверу с ssl или tls через ssh используя ssh2_tunnel (или предложите вариант) и получить приветствие. Все.
Ниже нерабочий код:
$ssh_conn = ssh2_connect($sshIp, $sshPort);
if ($ssh_conn && ssh2_auth_password($ssh_conn, $sshUsername, $sshPassword)) {
$stdio_stream = ssh2_shell($ssh_conn);
$stderr_stream = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDERR);
// var_dump(stream_socket_enable_crypto( $stderr_stream, true, STREAM_CRYPTO_METHOD_ANY_CLIENT ));
// var_dump(ssh($ssh_conn));
$stream = ssh2_tunnel($ssh_conn, '[login to view URL]', 143);
// fwrite($stream, "abcd CAPABILITY\r\n");
for ($i = 0; $i <= 20; $i++) {
var_dump(stream_get_contents($stream));
sleep(2);
}
fclose($stream);
ssh2_disconnect($ssh_conn);
}
Hello!
Look no more. I am your go to guy for coding. Trust me, I am not in it for money, this is my passion. I have over 9 years of experience in web and software development. Instead of writing a long description, I would just get to the point. Hit that chat button and get your work done. Professional programmer awaits you.
Let's talk
Umer