telnetコマンドからSMTPやPOP3・IMAPの認証テストを行う場合、以下のように行う。

1. SMTPの認証テストの場合

telnetからSMTPの認証を行う場合は、以下のように一度ユーザ名・パスワードを組み合わせた文字列をbase64でエンコードしてやり、その文字列を利用する。

[root@BS-SAKURA-TEST01 ~]# printf "%s\0%s\0%s" test001 test001 password | openssl base64 -e | tr -d '\n'; echo
dGVzdDAwXXXXZXN0MDAxXXXXc3NXX
[root@BS-SAKURA-TEST01 ~]# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mx1.XXXXX.com ESMTP
<span style="color: #0000ff;">ehlo test01.XXXXX.com
</span>250-mx1.XXXXX.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth plain dGVzdDAwXXXXZXN0MDAxXXXXc3NXX
235 2.7.0 Authentication successful

処理をワンライナーで行う場合は以下のようにする。

(for i in "ehlo ドメイン名" "auth plain $(printf "%s\0%s\0%s" ユーザ名 ユーザ名 パスワード | openssl base64 -e | tr -d '\n'; echo)" ; do sleep 1; echo $i;sleep 3; done) | telnet localhost 25
[root@BS-SAKURA-TEST01 ~]# (for i in "ehlo test01.XXXXX.com" "auth plain $(printf "%s\0%s\0%s" test001 test001 password | openssl base64 -e | tr -d '\n'; echo)" ; do sleep 1; echo $i;sleep 3; done) | telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mx1.XXXXX.com ESMTP
250-mx1.XXXXX.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
235 2.7.0 Authentication successful
Connection closed by foreign host.

2. POP3の認証テストの場合

telnetでPOP3の認証をする場合は、以下のようにユーザ名・パスワードを渡してやればよい。

[root@BS-SAKURA-TEST01 ~]# telnet localhost 110
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user test
+OK
pass password
+OK Logged in.

ワンライナーで確認をする場合は、以下のようにtelnetを実行する。

(sleep 1;echo user ユーザ名;sleep 1;echo pass パスワード;sleep 1) | telnet localhost 110

3. IMAPの認証テストの場合

IMAPの場合は、以下のようtelnetで接続する。

[root@BS-SAKURA-TEST01 ~]# telnet localhost 143
Trying ::1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
. login test password
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE] Logged in

こちらも、一行で確認する場合は以下のようにtelnetに値を渡してやる。

(sleep 1;echo '. login ユーザ名 パスワード';sleep 1) | telnet localhost 143