Може бути. Вам може знадобитися використовувати openssl для забезпечення безпеки, перш ніж сервер надасть звичайний метод аутентифікації.
Спочатку потрібно перевірити, які механізми AUTH доступні. Це можна зробити, передавши AUTH
команду без аргументів на поп-сервер:
$ telnet pop-server.example.com 110
Trying 10.10.10.10...
Connected to pop-server.example.com
Escape character is '^]'.
+OK The Microsoft Exchange POP3 service is ready.
AUTH
+OK
NTLM
GSSAPI
PLAIN
.
quit
+OK Microsoft Exchange Server 2010 POP3 server signing off.
Добре. ( у будь-якому випадку для наших цілей ) Цей сервер дозволяє звичайний AUTH. Тепер вам потрібно побудувати свій авторський рядок, який є з'єднанням імені користувача та пароля, а потім закодованим base64.
Існує конкретна вимога, що формат рядка AUTH є <NUL>username<NUL>password
. Існує кілька способів зібрати цю інформацію. Ви можете використовувати perl або команду printf.
bash-$ perl -MMIME::Base64 -e 'print encode_base64("\000username\000password");'
AHVzZXJuYW1lAHBhc3N3b3Jk
або, якщо у вас не встановлений модуль MIME :: Base64 perl.
bash-$ printf '\000username\000password' | base64
AHVzZXJuYW1lAHBhc3N3b3Jk
Рядок, який ці команди повертають, - це закодовані ім'я користувача та пароль base64, які ви передаєте команді AUTH.
Тепер ваш сеанс аутентифікації на поп-сервері буде виглядати приблизно так:
$ telnet pop-server.example.com 110
Trying 10.10.10.10...
Connected to pop-server.example.com
Escape character is '^]'.
+OK The Microsoft Exchange POP3 service is ready.
AUTH PLAIN
+
AHVzZXJuYW1lAHBhc3N3b3Jk
+OK Logged in.
Тепер ви можете робити те, що вам потрібно зробити. однак сервер може не дозволити вам використовувати AUTH PLAIN у нешифрованому сеансі. Якщо це так, можливо, вам доведеться використовувати openssl, а не telnet, щоб керувати сеансом pop3.
openssl s_client -connect pop-server.example.com:995
Тепер ваш сеанс буде захищений SSL / TLS, і ви можете перейти до описаного вище методу AUTH для взаємодії з вашим pop3 сервером.
bash-$ openssl s_client -connect pop-server.example.com:995
CONNECTED(00000003)
<snip a bunch of ssl cruft>
SSL-Session:
Protocol : TLSv1
Cipher : AES128-SHA
Session-ID: blahblahblah
Session-ID-ctx:
Master-Key: blahblahblah
Key-Arg : None
Start Time: 1320992572
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
+OK The Microsoft Exchange POP3 service is ready.
І звідси ви можете взаємодіяти з сервером будь-яким способом, який ви зазвичай працювали в прямому сеансі telnet.