Talvez. Você pode precisar usar o openssl para fornecer segurança antes que o servidor disponibilize um método de autenticação simples.
Primeiro, você precisa verificar quais mecanismos AUTH estão disponíveis. Você pode fazer isso passando o comando AUTH
sem argumentos para o servidor pop:
$ 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.
Bom. ( para os nossos propósitos, de qualquer maneira ) Este servidor permite AUTH simples. Agora você precisa construir sua string auth, que é uma junção do nome de usuário e senha, e então codificada em base64.
Existe um requisito específico de que o formato da string AUTH é <NUL>username<NUL>password
. Existem várias maneiras de reunir essas informações. Você pode usar perl ou o comando printf.
bash-$ perl -MMIME::Base64 -e 'print encode_base64("bash-$ printf '$ 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.
0usernameopenssl s_client -connect pop-server.example.com:995
0password' | base64
AHVzZXJuYW1lAHBhc3N3b3Jk
0usernamebash-$ 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.
0password");'
AHVzZXJuYW1lAHBhc3N3b3Jk
ou, se você não tiver o módulo MIME :: Base64 perl instalado.
$ 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.
A string que esses comandos retornam é o nome de usuário e a senha codificados em base64, que você passa para o comando AUTH.
Agora, sua sessão de autenticação para o servidor pop será parecida com:
bash-$ perl -MMIME::Base64 -e 'print encode_base64("bash-$ printf '$ 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.
0usernameopenssl s_client -connect pop-server.example.com:995
0password' | base64
AHVzZXJuYW1lAHBhc3N3b3Jk
0usernamebash-$ 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.
0password");'
AHVzZXJuYW1lAHBhc3N3b3Jk
Agora você pode fazer o que precisa fazer. no entanto , o servidor pode não permitir que você use o AUTH PLAIN em uma sessão não criptografada. Se for esse o caso, talvez você precise usar o openssl, em vez do telnet, para gerenciar sua sessão pop3.
%pre%Agora, sua sessão será protegida por SSL / TLS e você poderá continuar com o método AUTH descrito acima para interagir com seu servidor pop3.
%pre%E a partir daqui, você pode interagir com o servidor da maneira que faria normalmente em uma sessão de telnet direta.