Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:sysadmin:tools:imap-mit-ssl-testen

Früher hat man sein IMAP mit Telnet geprüft:

$ telnet imapserver.example.com 143

heutzutage wird man sein IMAP u.ä. dann doch lieber nur verschlüsselt anbieten. Das ist dann fast ähnlich zu testen - und eigentlich auch nicht schwieriger:

IMAP mit openSSL testen (IMAPs von der Kommandozeile)

$ openssl s_client -crlf -connect imapserver.example.com:993
CONNECTED(00000003)

Es sollte folgen:

sehr viel häufig hilfreicher Output zum verwendeten SSL-Zertifikat …

und dann der Prompt "* OK" mit noch ein paar Server-Informationen:

* OK imapserver.example.com Cyrus IMAP4 v47.11 server ready

und jetzt kann man mit dem IMAP selber kommunizieren …

CAPABILITY - fragen welche Fähigkeiten der Server hat

. capability
* CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS
ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT THREAD=ORDEREDSUBJECT
THREAD=REFERENCES ANNOTATEMORE IDLE AUTH=PLAIN AUTH=LOGIN SASL-IR LISTEXT LIST-SUBSCRIBED X-NETSCAPE

IMAP Login

einloggen:

A login imapuser meingeheimespasswort

1)

der Server meldet sich bei Erfolg dann mit

A OK User logged in

IMAP status INBOX

Jetzt schauen wir mal nach, ob Mail in der Inbox liegt:

A status INBOX (messages)
* 1 EXISTS
* 1 RECENT
* STATUS INBOX (MESSAGES 1)

ah, eine Mail!

IMAP Mail lesen

eventuell muss man vorher in die INBOX wechseln, deswegen tun wir das mal:

A select INBOX

Mail Nr 1 gleich mal lesen (den Body ansehen):

. fetch 1 rfc822.text
* 1 FETCH (RFC822.TEXT {50}
subject: Dies ist ein Test 2010-05-31 1311

Lieber Imapuser,

dies ist ein Test 2010-05-31 1311

Beste Gruesse,
Anna
)
. OK Completed (0.000 sec)

Die Header ansehen von Mail Nr. 1:

. fetch 1 rfc822.header
* 1 FETCH (RFC822.HEADER {785}
Return-Path: <anna.beispiel@unixwitch.de>
Received: from murder ([unix socket])
         by imapserver.example.com (Cyrus IMAP4 v47.11) with LMTPA;
         Mon, 31 May 2010 13:11:47 +0200
X-Sieve: CMU Sieve 2.2
Received: from mailgw.example.com (mailgw.example.com [192.168.7.25])
        by imapserver.example.com (Postfix) with SMTP id 0D9E22B36C
        for <imapuser>; Mon, 31 May 2010 13:11:10 +0200 (CEST)
Message-Id: <20100531111118.0D9E22B36C@imapserver.example.com>
Date: Mon, 31 May 2010 13:11:10 +0200 (CEST)
From: anna.beispiel@unixwitch.de
To: imapuser@example.com:;
X-Spam-Status: No

)
. OK Completed (0.000 sec)

Mails löschen

Die ersten 20 Mails zum löschen markieren:

. store 1:20 flags \Deleted

Löschung durchführen:

. expunge

Erata

Martin Conzelmann aus Bonn hat mich drauf hingewiesen: Das IMAP-Protokoll verlangt nach RFC 3501 eigentlich ein CRLF am Zeilenende. Die meisten Unix-IMAP-Server sind da nicht so streng, aber z.B. MS Exchange hält sich streng dran und bestraft den Protokoll-Verstoss mit Timeouts. Siehe auch: http://stackoverflow.com/questions/8682976/imap-connection-carriage-return-line-feed-issue-from-linux. Um das zu verhindern, gibt man dem openssl einfach die Option -crlf mit. Vielen Dank an den Hinweis, ist oben ergänzt.


siehe auch: HTTP per Telnet, cyrus imap spickzettel, IMAP mit Python


1) wofür ist denn immer das 'A'? (z.B. bei A login imapuser meingeheimespasswort) , fragt Julian Winter. Dafür musste ich auch in RFC 3501 nachsehen:
Each client command is prefixed with an identifier
(typically a short alphanumeric string,
e.g., A0001, A0002, etc.) called a "tag".
A different tag is generated by the client
for each command.
Ich verwende hier manchmal auch einen ".", aber welche ASCII-Zeichen man nimmt ist wohl Geschmackssache, zumindest wenn man wie hier nur mit einer Session gleichzeitig mit dem Server spricht.
de/sysadmin/tools/imap-mit-ssl-testen.txt · Zuletzt geändert: 2017-11-13 10:21 von hella

Seiten-Werkzeuge