LINUX:Dovecot-Tester
But
Comme dans l'article sur Postfix - serveur de messagerie, on peut tester la connexion aux protocoles POP et IMAP via des scripts.
Reportez-vous à cet article pour installer les paquets nécessaires.
On va lister les mails en attente et la liste des répertoires dans le cas d'IMAP.
POP-port 110-en clair
Abordons le cas de POP abordé en clair par le port 110. On va utiliser "telnet" pour cette connexion.
Voici le script:
#!/usr/bin/expect -f spawn /usr/bin/telnet mail.home.dom 110 sleep 1 send -- "user pdupont\n" sleep 1 send -- "pass XXXXXXXX\n" sleep 1 send -- "list\n" sleep 1 send -- "stat\n" sleep 1 send -- "quit\n" sleep 1 expect EOF
Et voici la sortie:
spawn /usr/bin/telnet mail.home.dom 110 Trying 192.168.1.100... Connected to mail.home.dom. Escape character is '^]'. +OK Dovecot ready. user pdupont +OK pass XXXXXXXX +OK Logged in. list +OK 0 messages: .stat +OK 0 0 quit +OK Logging out. Connection closed by foreign host.
IMAP-port 143-en clair
Abordons le cas de IMAP abordé en clair par le port 143. On va utiliser "telnet" pour cette connexion.
Voici le script:
#!/usr/bin/expect -f spawn /usr/bin/telnet mail.home.dom 143 sleep 1 send -- "a login pdupont XXXXXXXX\n" sleep 1 send -- "b capability\n" sleep 1 send -- "c list * *\n" sleep 1 send -- "d logout\n" sleep 1 expect EOF
Et voici la sortie:
spawn /usr/bin/telnet mail.home.dom 143 Trying 192.168.1.100... Connected to mail.home.dom. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready. a login pdupont XXXXXXXX a OK [CAPABILITY IMAP4rev1 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 BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE] Logged in b capability * CAPABILITY IMAP4rev1 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 BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE b OK Capability completed (0.001 + 0.000 secs). c list * * * LIST (\HasNoChildren \Trash) "." Trash * LIST (\HasNoChildren \Junk) "." Junk * LIST (\HasNoChildren \Archive) "." Archives * LIST (\HasNoChildren \Sent) "." Sent * LIST (\HasNoChildren \Drafts) "." Drafts * LIST (\HasNoChildren) "." INBOX c OK List completed (0.001 + 0.000 secs). d logout * BYE Logging out d OK Logout completed (0.001 + 0.000 secs). Connection closed by foreign host.
POP-port 110-STARTTLS
Abordons le cas de POP abordé via l'approche STARTTLS par le port 110. On va utiliser "openssl" pour cette connexion.
Voici le script:
#!/usr/bin/expect -f spawn /usr/bin/openssl s_client -crlf -starttls pop3 -connect mail.home.dom:110 -quiet sleep 1 send -- "user pdupont\n" sleep 1 send -- "pass XXXXXXXX\n" sleep 1 send -- "list\n" sleep 1 send -- "stat\n" sleep 1 send -- "quit\n" sleep 1 expect EOF
Et voici la sortie:
spawn /usr/bin/openssl s_client -crlf -starttls pop3 -connect mail.home.dom:110 -quiet Connecting to 192.168.1.100 depth=1 CN=CA.home.dom, emailAddress=pdupont@home.dom, OU=Dupont, O=Home, L=Namur, ST=Belgique, C=BE verify return:1 depth=0 CN=mail.home.dom, emailAddress=pdupont@home.dom, OU=Dupont, O=Home, L=Namur, ST=Belgique, C=BE verify return:1 +OK Dovecot ready. user pdupont +OK pass XXXXXXXX +OK Logged in. list +OK 0 messages: . stat +OK 0 0 quit +OK Logging out.
IMAP-port 143-STARTTLS
Abordons le cas de IMAP abordé via l'approche STARTTLS par le port 110. On va utiliser "openssl" pour cette connexion.
Voici le script:
#!/usr/bin/expect -f spawn /usr/bin/openssl s_client -crlf -starttls imap -connect mail.home.dom:143 -quiet sleep 1 send -- "a login pdupont XXXXXXXX\n" sleep 1 send -- "b capability\n" sleep 1 send -- "c list * *\n" sleep 1 send -- "d logout\n" sleep 1 expect EOF
Et voici la sortie:
spawn /usr/bin/openssl s_client -crlf -starttls imap -connect mail.home.dom:143 -quiet Connecting to 192.168.1.100 depth=1 CN=CA.home.dom, emailAddress=pdupont@home.dom, OU=Dupont, O=Home, L=Namur, ST=Belgique, C=BE verify return:1 depth=0 CN=mail.home.dom, emailAddress=pdupont@home.dom, OU=Dupont, O=Home, L=Namur, ST=Belgique, C=BE verify return:1 . OK Pre-login capabilities listed, post-login capabilities have more. a login pdupont XXXXXXXX * CAPABILITY IMAP4rev1 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 BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE a OK Logged in b capability * CAPABILITY IMAP4rev1 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 BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE b OK Capability completed (0.001 + 0.000 secs). c list * * * LIST (\HasNoChildren \Trash) "." Trash * LIST (\HasNoChildren \Junk) "." Junk * LIST (\HasNoChildren \Archive) "." Archives * LIST (\HasNoChildren \Sent) "." Sent * LIST (\HasNoChildren \Drafts) "." Drafts * LIST (\HasNoChildren) "." INBOX c OK List completed (0.001 + 0.000 secs). d logout * BYE Logging out d OK Logout completed (0.001 + 0.000 secs).
POP-port 995-SSL/TLS
Abordons le cas de POP abordé via l'approche SSL/TLS par le port 995. On va utiliser "openssl" pour cette connexion.
Voici le script:
#!/usr/bin/expect -f spawn /usr/bin/openssl s_client -crlf -connect mail.home.dom:995 -quiet sleep 1 send -- "user pdupont\n" sleep 1 send -- "pass XXXXXXXX\n" sleep 1 send -- "list\n" sleep 1 send -- "stat\n" sleep 1 send -- "quit\n" sleep 1 expect EOF
Et voici la sortie:
spawn /usr/bin/openssl s_client -crlf -connect mail.home.dom:995 -quiet Connecting to 192.168.1.100 depth=1 CN=CA.home.dom, emailAddress=pdupont@home.dom, OU=Dupont, O=Home, L=Namur, ST=Belgique, C=BE verify return:1 depth=0 CN=mail.home.dom, emailAddress=pdupont@home.dom, OU=Dupont, O=Home, L=Namur, ST=Belgique, C=BE verify return:1 +OK Dovecot ready. user pdupont +OK pass XXXXXXXX +OK Logged in. list +OK 0 messages: . stat +OK 0 0 quit +OK Logging out.
IMAP-port 993-SSL/TLS
Abordons le cas de IMAP abordé via l'approche SSL/TLS par le port 993. On va utiliser "openssl" pour cette connexion.
Voici le script:
#!/usr/bin/expect -f spawn /usr/bin/openssl s_client -crlf -connect mail.home.dom:993 -quiet sleep 1 send -- "a login pdupont XXXXXXXX\n" sleep 1 send -- "b capability\n" sleep 1 send -- "c list * *\n" sleep 1 send -- "d logout\n" sleep 1 expect EOF
Et voici la sortie:
spawn /usr/bin/openssl s_client -crlf -connect mail.home.dom:993 -quiet Connecting to 192.168.1.100 depth=1 CN=CA.home.dom, emailAddress=pdupont@home.dom, OU=Dupont, O=Home, L=Namur, L=Bambois, ST=Belgique, C=BE verify return:1 depth=0 CN=mail.home.dom, emailAddress=pdupont@home.dom, OU=Dupont, O=Home, L=Namur, ST=Belgique, C=BE verify return:1 * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN AUTH=LOGIN] Dovecot ready. a login pdupont XXXXXXXX a OK [CAPABILITY IMAP4rev1 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 BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE] Logged in b capability * CAPABILITY IMAP4rev1 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 BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE b OK Capability completed (0.001 + 0.000 secs). c list * * * LIST (\HasNoChildren \Trash) "." Trash * LIST (\HasNoChildren \Junk) "." Junk * LIST (\HasNoChildren \Archive) "." Archives * LIST (\HasNoChildren \Sent) "." Sent * LIST (\HasNoChildren \Drafts) "." Drafts * LIST (\HasNoChildren) "." INBOX c OK List completed (0.001 + 0.000 secs). d logout * BYE Logging out d OK Logout completed (0.001 + 0.000 secs).