Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
centos:mail_c7:dovecot_1 [04.08.2014 17:53. ] – [Abholung via IAMP] django | centos:mail_c7:dovecot_1 [17.03.2015 16:38. ] – [Speicherformat] django | ||
---|---|---|---|
Zeile 592: | Zeile 592: | ||
==== Datenspeicher ==== | ==== Datenspeicher ==== | ||
+ | === Speicherformat === | ||
Eine sehr technikgetriebene Überlegung, | Eine sehr technikgetriebene Überlegung, | ||
- **[[http:// | - **[[http:// | ||
Zeile 600: | Zeile 601: | ||
</ | </ | ||
- **[[http:// | - **[[http:// | ||
- | **Performantes //" | + | **Performantes //" |
</ | </ | ||
+ | === Komprimierung === | ||
+ | In der Konfigurationsdatei // | ||
+ | # vim / | ||
+ | <file bash / | ||
+ | ## Plugin settings | ||
+ | ## | ||
+ | # All wanted plugins must be listed in mail_plugins setting before any of the | ||
+ | # settings take effect. See < | ||
+ | # their configuration. Note that %variable expansion is done for all values. | ||
+ | plugin { | ||
+ | # | ||
+ | # Django : 2014-08-05 | ||
+ | # default: unset | ||
+ | zlib_save = gz | ||
+ | # zlib_save = bz2 | ||
+ | # Komprimierungslevel Wert zwischen 1 und 9 | ||
+ | zlib_save_level = 6 | ||
+ | } | ||
+ | </ | ||
+ | Die Aktivierung der Komprimierung erfolgt dann nur noch durch anfügen des Mail-plugins **zlib** in der Konfigiurationsdatei // | ||
+ | # vim / | ||
+ | <code bash>... | ||
+ | |||
+ | # Space separated list of plugins to load for all services. Plugins specific to | ||
+ | # IMAP, LDA, etc. are added to this list in their own .conf files. | ||
+ | # Django : 2014-08-05 | ||
+ | # default: # | ||
+ | mail_plugins = zlib | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Zum Aktivieren führen wir nun kurz einen **Reload** der Konfigurationsdateien durch. | ||
+ | # systemctl reload dovecot | ||
+ | |||
+ | Den erfolgreichen Reload der konfiguration sehen wir dann auch bei der Statusabfrage des Daemon. | ||
+ | # systemctl status dovecot | ||
+ | < | ||
+ | | ||
+ | | ||
+ | Process: 5375 ExecReload=/ | ||
+ | Process: 5247 ExecStartPre=/ | ||
+ | Main PID: 5251 (dovecot) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Aug 05 14:54:30 vml000070.dmz.nausch.org dovecot[5255]: | ||
+ | Aug 05 14:54:30 vml000070.dmz.nausch.org dovecot[5255]: | ||
+ | Aug 05 14:54:30 vml000070.dmz.nausch.org dovecot[5255]: | ||
+ | Aug 05 15:14:54 vml000070.dmz.nausch.org systemd[1]: Reloading Dovecot IMAP/POP3 email server. | ||
+ | Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5251]: | ||
+ | Aug 05 15:14:54 vml000070.dmz.nausch.org systemd[1]: Reloaded Dovecot IMAP/POP3 email server. | ||
+ | Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5255]: | ||
+ | Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5255]: | ||
+ | Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5255]: | ||
+ | Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5255]: | ||
+ | Hint: Some lines were ellipsized, use -l to show in full. | ||
+ | </ | ||
+ | |||
+ | Im folgendem Beispiel wurde eine Nachricht in den Unterordner **Test** kopiert. Nach der aktivierung der Komprimierung wurde erneut die Nachricht in den gleichen Unterordner kopiert. | ||
+ | |||
+ | Auf Dateiebene sieht man dann sehr deutlich den Grad der Komprimierung. Hatte die eMail vor der Komprimierung noch **103.504 Bytes** sind des bei aktivierter Komprimierung nur noch **16646 Bytes**. | ||
+ | # ll / | ||
+ | |||
+ | < | ||
+ | -rw------- 1 vmail vmail 16646 Jul 18 20:19 1407244896.M19043P5389.vml000070.dmz.nausch.org, | ||
+ | </ | ||
==== Mailbox Location / vmail-Directory ==== | ==== Mailbox Location / vmail-Directory ==== | ||
Für unseren Mailserver mit seinen Mailboxen brauchen wir noch ein entsprechendes Verzeichnis, | Für unseren Mailserver mit seinen Mailboxen brauchen wir noch ein entsprechendes Verzeichnis, | ||
Zeile 1226: | Zeile 1297: | ||
</ | </ | ||
+ | ==== Logging und Fehlersuche ==== | ||
+ | Dovecot unterstützt uns bei der Fehlersuche mit aussagekräftigen Einträgen im Maillog unseres Servers. Zum Feinjustieren und individuellen Loggingverhalten bietet uns Dovecot mehrere Optionen. | ||
+ | === dovecot.conf === | ||
+ | Rufen wir die Prozessliste auf, sehen wir je nach Auslastung unseres Servers einen oder mehrere Dovecot-Prozesse. | ||
+ | | ||
+ | | ||
+ | Zieht jetzt ein Client mehr Ressourcen, als wir diesem zugestehen wollen, können wir so leider nicht ohne weiteres herausfinden, | ||
+ | Über den Konfigurationsparameter **verbose_proctitle** können wir definieren, dass uns neben den üblichen | ||
+ | ps-Werten zusätzlich noch der Login-Name, die Client-IP-Adresse und auch noch der ausgeführte IMAP-Befehl angezeigt wird. | ||
+ | | ||
+ | | ||
+ | | ||
+ | Zum Aktivieren dieser Option tragen wir nun einfach ein **verbose_proctitle=yes** in der Konfigurationsdatei // | ||
+ | # vim / | ||
+ | <file bash / | ||
+ | |||
+ | # If you're in a hurry, see http:// | ||
+ | |||
+ | # " | ||
+ | # instead of copy& | ||
+ | |||
+ | # '#' | ||
+ | # and tabs are ignored. If you want to use either of these explicitly, put the | ||
+ | # value inside quotes, eg.: key = "# char and trailing whitespace | ||
+ | |||
+ | # Most (but not all) settings can be overridden by different protocols and/or | ||
+ | # source/ | ||
+ | # protocol imap { }, local 127.0.0.1 { }, remote 10.0.0.0/8 { } | ||
+ | |||
+ | # Default values are shown for each setting, it's not required to uncomment | ||
+ | # those. These are exceptions to this though: No sections (e.g. namespace {}) | ||
+ | # or plugin settings are added by default, they' | ||
+ | # Paths are also just examples with the real defaults being based on configure | ||
+ | # options. The paths listed here are for configure --prefix=/ | ||
+ | # --sysconfdir=/ | ||
+ | |||
+ | # Protocols we want to be serving. | ||
+ | #protocols = imap pop3 lmtp | ||
+ | |||
+ | # A comma separated list of IPs or hosts where to listen in for connections. | ||
+ | # " | ||
+ | # If you want to specify non-default ports or anything more complex, | ||
+ | # edit conf.d/ | ||
+ | #listen = *, :: | ||
+ | |||
+ | # Base directory where to store runtime data. | ||
+ | #base_dir = / | ||
+ | |||
+ | # Name of this instance. In multi-instance setup doveadm and other commands | ||
+ | # can use -i < | ||
+ | # to -c < | ||
+ | # in ps output. | ||
+ | # | ||
+ | |||
+ | # Greeting message for clients. | ||
+ | # | ||
+ | |||
+ | # Space separated list of trusted network ranges. Connections from these | ||
+ | # IPs are allowed to override their IP addresses and ports (for logging and | ||
+ | # for authentication checks). disable_plaintext_auth is also ignored for | ||
+ | # these networks. Typically you'd specify your IMAP proxy servers here. | ||
+ | # | ||
+ | |||
+ | # Space separated list of login access check sockets (e.g. tcpwrap) | ||
+ | # | ||
+ | |||
+ | # With proxy_maybe=yes if proxy destination matches any of these IPs, don't do | ||
+ | # proxying. This isn't necessary normally, but may be useful if the destination | ||
+ | # IP is e.g. a load balancer' | ||
+ | # | ||
+ | |||
+ | # Show more verbose process titles (in ps). Currently shows user name and | ||
+ | # IP address. Useful for seeing who are actually using the IMAP processes | ||
+ | # (eg. shared mailboxes or if same uid is used for multiple accounts). | ||
+ | # Django : 2014-07-21 | ||
+ | # In der Prozessliste bei den POP3/ | ||
+ | # die Client-IP-Adresse und den ausgeführten IMAP-Befehl anzeigen. | ||
+ | # default: # | ||
+ | verbose_proctitle = yes | ||
+ | |||
+ | # Should all processes be killed when Dovecot master process shuts down. | ||
+ | # Setting this to " | ||
+ | # forcing existing client connections to close (although that could also be | ||
+ | # a problem if the upgrade is e.g. because of a security fix). | ||
+ | # | ||
+ | |||
+ | # If non-zero, run mail commands via this many connections to doveadm server, | ||
+ | # instead of running them directly in the same process. | ||
+ | # | ||
+ | # UNIX socket or host:port used for connecting to doveadm server | ||
+ | # | ||
+ | |||
+ | # Space separated list of environment variables that are preserved on Dovecot | ||
+ | # startup and passed down to all of its child processes. You can also give | ||
+ | # key=value pairs to always set specific settings. | ||
+ | # | ||
+ | |||
+ | ## | ||
+ | ## Dictionary server settings | ||
+ | ## | ||
+ | |||
+ | # Dictionary can be used to store key=value lists. This is used by several | ||
+ | # plugins. The dictionary can be accessed either directly or though a | ||
+ | # dictionary server. The following dict block maps dictionary names to URIs | ||
+ | # when the server is used. These can then be referenced using URIs in format | ||
+ | # " | ||
+ | |||
+ | dict { | ||
+ | #quota = mysql:/ | ||
+ | #expire = sqlite:/ | ||
+ | } | ||
+ | |||
+ | # Most of the actual configuration gets included below. The filenames are | ||
+ | # first sorted by their ASCII value and parsed in that order. The 00-prefixes | ||
+ | # in filenames are intended to make it easier to understand the ordering. | ||
+ | !include conf.d/ | ||
+ | |||
+ | # A config file can also tried to be included without giving an error if | ||
+ | # it's not found: | ||
+ | !include_try local.conf | ||
+ | </ | ||
+ | |||
+ | === 10-logging.conf === | ||
+ | Weitere Optionen zum Umfang beim Logging nehmen wir an Hand der Datei // | ||
+ | # vim / | ||
+ | <file bash / | ||
+ | ## Log destination. | ||
+ | ## | ||
+ | |||
+ | # Log file to use for error messages. " | ||
+ | # /dev/stderr logs to stderr. | ||
+ | #log_path = syslog | ||
+ | |||
+ | # Log file to use for informational messages. Defaults to log_path. | ||
+ | # | ||
+ | # Log file to use for debug messages. Defaults to info_log_path. | ||
+ | # | ||
+ | |||
+ | # Syslog facility to use if you're logging to syslog. Usually if you don't | ||
+ | # want to use " | ||
+ | # facilities are supported. | ||
+ | # | ||
+ | |||
+ | ## | ||
+ | ## Logging verbosity and debugging. | ||
+ | ## | ||
+ | |||
+ | # Log unsuccessful authentication attempts and the reasons why they failed. | ||
+ | # | ||
+ | # Django : 2014-07-21 | ||
+ | # Detaillierte Loginformationen zum positiven Authentifizierungsprozess | ||
+ | # bzw. im Fehlerfall mit Details zu den Fehlern | ||
+ | # default: auth_verbose = no | ||
+ | auth_verbose = no | ||
+ | |||
+ | # In case of password mismatches, log the attempted password. Valid values are | ||
+ | # no, plain and sha1. sha1 can be useful for detecting brute force password | ||
+ | # attempts vs. user simply trying the same password over and over again. | ||
+ | # You can also truncate the value to n chars by appending ": | ||
+ | # | ||
+ | |||
+ | # Even more verbose logging for debugging purposes. Shows for example SQL | ||
+ | # queries. | ||
+ | #auth_debug = no | ||
+ | # Django : 2014-07-21 | ||
+ | # Detaillierte Debug-Loginformationen zum Authentifizierungsprozess inkl. | ||
+ | # der SQL-Abfragen und deren Ergebnisse ins Logfile schreiben | ||
+ | |||
+ | # In case of password mismatches, log the passwords and used scheme so the | ||
+ | # problem can be debugged. Enabling this also enables auth_debug. | ||
+ | # | ||
+ | # Django : 2014-07-21 | ||
+ | # Passwort zum Debuggen mitloggen? | ||
+ | |||
+ | # Enable mail process debugging. This can help you figure out why Dovecot | ||
+ | # isn't finding your mails. | ||
+ | #mail_debug = no | ||
+ | # Django : 2014-07-21 | ||
+ | # Detailierte Loginformationen zur Verarbeitung der eMails durch Dovecot. | ||
+ | |||
+ | # Show protocol level SSL errors. | ||
+ | # | ||
+ | # Django : 2014-07-21 | ||
+ | # SSL-Debugmode aktivieren. | ||
+ | |||
+ | # mail_log plugin provides more event logging for mail processes. | ||
+ | plugin { | ||
+ | # Events to log. Also available: flag_change append | ||
+ | # | ||
+ | # Available fields: uid, box, msgid, from, subject, size, vsize, flags | ||
+ | # size and vsize are available only for expunge and copy events. | ||
+ | # | ||
+ | } | ||
+ | |||
+ | ## | ||
+ | ## Log formatting. | ||
+ | ## | ||
+ | |||
+ | # Prefix for each line written to log file. % codes are in strftime(3) | ||
+ | # format. | ||
+ | # | ||
+ | # Django : 2014-07-21 | ||
+ | # default: unset | ||
+ | log_timestamp | ||
+ | |||
+ | # Space-separated list of elements we want to log. The elements which have | ||
+ | # a non-empty variable value are joined together to form a comma-separated | ||
+ | # string. | ||
+ | # | ||
+ | # Django : 2014-07-21 | ||
+ | # default: unset | ||
+ | # Folgende Parameter wurden aktiviert: | ||
+ | # %u : User/ | ||
+ | # %m : Authentication-Pethode | ||
+ | # %r : Remote IP Adress | ||
+ | # %e : Mail-Process-ID (imap/pop3) der post-login Verbindung | ||
+ | # %c : " | ||
+ | # %k : SSL Protokoll und Cipher-Information | ||
+ | # %{session} : Session-ID der Client-Verbindung | ||
+ | login_log_format_elements = user=< | ||
+ | |||
+ | # Login log format. %s contains login_log_format_elements string, %$ contains | ||
+ | # the data we want to log. | ||
+ | # | ||
+ | |||
+ | # Log prefix for mail processes. See doc/ | ||
+ | # possible variables you can use. | ||
+ | # | ||
+ | |||
+ | # Format to use for logging mail deliveries. You can use variables: | ||
+ | # %$ - Delivery status message (e.g. "saved to INBOX" | ||
+ | # %m - Message-ID | ||
+ | # %s - Subject | ||
+ | # %f - From address | ||
+ | # %p - Physical size | ||
+ | # %w - Virtual size | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | Die benutzen Variablen in der Konfigurationsdatei // | ||
+ | |||
+ | === 10-mail.conf === | ||
+ | Normalerweise loggt Dovecot nur mit, wann sich ein Nutzer am server an und abmeldet. Möchte man darüber hinaus sehen, welche IMAP-Kommandos der eMail-Client abgesetzt hat, muß man auf die beiden plugins **[[http:// | ||
+ | # vim / | ||
+ | |||
+ | <code bash>... | ||
+ | |||
+ | # Space separated list of plugins to load for all services. Plugins specific to | ||
+ | # IMAP, LDA, etc. are added to this list in their own .conf files. | ||
+ | # Django : 2014-08-05 - zlib-Kompremmierung der Mailkonten | ||
+ | # default: # | ||
+ | # | ||
+ | # Django : 2014-08-06 - Quotaregelung aktiviert | ||
+ | # last : mail_plugins = zlib | ||
+ | # mail_plugins = zlib quota | ||
+ | # Django : 2014-08-08 - ACL-Plugin für Shared Folders | ||
+ | # mail_plugins = zlib quota acl | ||
+ | # Django : 2014-08-10 - Loggen der IMAP-Kommandos im Maillog des Servers | ||
+ | mail_plugins = zlib quota acl notify mail_log | ||
+ | |||
+ | ... | ||
+ | </ | ||
- | FIXME | ||
==== IP-Adressen ==== | ==== IP-Adressen ==== | ||
Welche IP-Adressen unser Dovecot-Server zur Verfügung stellt fragen wir mit dem Befehl **netstat** ab. | Welche IP-Adressen unser Dovecot-Server zur Verfügung stellt fragen wir mit dem Befehl **netstat** ab. | ||
Zeile 1379: | Zeile 1711: | ||
</ | </ | ||
+ | ===== erweiterte Konfiguration(en) ===== | ||
+ | ==== nötige Erweiterungen ==== | ||
+ | Für folgende Themen wurden separate WIKI-Seiten erstellt: | ||
+ | * [[centos: | ||
+ | * [[centos: | ||
+ | * [[centos: | ||
+ | * [[centos: | ||
+ | * [[centos: | ||
+ | * [[centos: | ||
+ | ==== Lucene Full Text Search Indexing ==== | ||
+ | Zum Aktivieren der // | ||
+ | # vim / | ||
+ | |||
+ | <code bash>... | ||
+ | |||
+ | # Space separated list of plugins to load for all services. Plugins specific to | ||
+ | # IMAP, LDA, etc. are added to this list in their own .conf files. | ||
+ | # Django : 2014-08-05 | ||
+ | # default: # | ||
+ | # | ||
+ | # Django : 2014-08-06 - Quotaregelung aktiviert | ||
+ | # last : mail_plugins = zlib | ||
+ | # mail_plugins = zlib quota | ||
+ | # Django : 2014-08-08 - ACL-Plugin für Shared Folders | ||
+ | # mail_plugins = zlib quota acl | ||
+ | # Django : 2014-08-10 - Loggen der IMAP-Kommandos im Maillog des Servers | ||
+ | # | ||
+ | # Django : 2014-08-12 - gesperrte Sonderzeichen im Verzeichnisnamen erlauben | ||
+ | # | ||
+ | # Django : 2014-08-14 - Full text search indexing FTS | ||
+ | mail_plugins = zlib quota acl notify mail_log listescape fts fts_lucene | ||
+ | |||
+ | # Django : 2014-08-12 | ||
+ | # Mailplugin FS und fts_lucene aktiviert | ||
+ | plugin { | ||
+ | fts=lucene | ||
+ | # Lucene-specific settings, good ones are: | ||
+ | fts_lucene = whitespace_chars=@. | ||
+ | # Index new messages immediately after they' | ||
+ | fts_autoindex = yes | ||
+ | # Skip autoindexing the mailbox if it has more than n \Recent messages (implying | ||
+ | # that the mailbox is never actually being accessed). (v2.2.9+) | ||
+ | # fts_autoindex_max_recent_msgs = n | ||
+ | # When SEARCH notices that index isn't up to date, it tells indexer to index the | ||
+ | # mails and waits until it is finished. This setting adds a maximum timeout to | ||
+ | # this wait. If the timeout is reached, the SEARCH fails with: NO [INUSE] Timeout | ||
+ | # while waiting for indexing to finish (v2.1+) | ||
+ | # fts_index_timeout = n | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Zum Aktivieren unserer Programmänderung führen wir einen **Reload** des Dovecot-Daemon durch. | ||
+ | |||
+ | Der Index wird übrigens automatisch bei jedem Suchvorgang **__auf dem Server__** aktualisiert. | ||
+ | |||
+ | Mit der Option **fts_autoindex = yes** werden die Nachrichten automatisch indiziert, wenn diese per **LMTP** eingeliefert werden. | ||
+ | |||
+ | Möchte man den Index für einen Benutzer neu anlegen benutzt man folgenden Aufruf: | ||
+ | # doveadm index -u django@nausch.org -q ' | ||
+ | Mit der Option **-D** kann man sich **Debugmeldungen** mit ausgeben lassen. | ||
+ | # doveadm -D index -u django@nausch.org -q ' | ||
+ | < | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(root): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | doveadm(django@nausch.org): | ||
+ | </ | ||
+ | |||
+ | Den Index aller Benutzer würde man mit folgendem Aufruf anstoßen: | ||
+ | # doveadm index -A -q ' | ||
+ | |||
+ | Mit dem nun vorhandenen Suchindex' | ||
===== Systemstart ===== | ===== Systemstart ===== | ||
==== erster manueller Start ==== | ==== erster manueller Start ==== | ||
Zeile 1472: | Zeile 1917: | ||
</ | </ | ||
- | Im Verzeichnis // | + | Im Verzeichnis // |
< | < | ||
/ | / | ||
Zeile 1487: | Zeile 1932: | ||
</ | </ | ||
- | Wir können uns nun auch die Datei/eMAil natürlich auch direkt auf der Konsole ansehen. | + | Wir können uns nun auch die Datei/eMail natürlich auch direkt auf der Konsole ansehen. |
# cat / | # cat / | ||
< | < | ||
Zeile 1609: | Zeile 2054: | ||
</ | </ | ||
- | Unsere Aktionen via POP3 wurden im MAillog | + | Unsere Aktionen via POP3 wurden im Maillog |
# less / | # less / | ||
< | < | ||
Zeile 1620: | Zeile 2065: | ||
</ | </ | ||
- | Auf unserem Dovecot-Server ist die gelöschte Nachricht nunmehr auch nicht vorhanden, da diese ja beim LOGOUT des Client gelöscht wurde. | + | Auf unserem Dovecot-Server ist die gelöschte Nachricht nunmehr auch nicht vorhanden, da diese ja beim **LOGOUT** des Client gelöscht wurde. |
< | < | ||
└── Maildir/ | └── Maildir/ | ||
Zeile 1632: | Zeile 2077: | ||
└── tmp/ | └── tmp/ | ||
</ | </ | ||
- | ==== Abholung via IAMP ==== | + | ==== Abholung via IMAP ==== |
Wie auch schon beim Protokoll **[[centos: | Wie auch schon beim Protokoll **[[centos: | ||
Zeile 1639: | Zeile 2084: | ||
Als erstes bauen wir eine Verbindung zu unserem Dovecot-Server auf und melden uns an. | Als erstes bauen wir eine Verbindung zu unserem Dovecot-Server auf und melden uns an. | ||
+ | < | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | Connected to 10.0.0.70. | ||
+ | Escape character is ' | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | </ | ||
+ | Als erstes rufen wir die Liste aller verfügbaren Verzeichnisse ab. Hierzu verwenden wir den Befehl **LIST** | ||
+ | < | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | * LIST (\HasNoChildren \Drafts) "/" | ||
+ | * LIST (\HasNoChildren \Trash) "/" | ||
+ | * LIST (\HasNoChildren \Sent) "/" | ||
+ | & | ||
+ | </ | ||
+ | Mit dem Befehl **SELECT** wechseln wir explizit in den Ordner **INBOX**. | ||
+ | < | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. | ||
+ | * 1 EXISTS | ||
+ | * 1 RECENT | ||
+ | * OK [UNSEEN 1] First unseen. | ||
+ | * OK [UIDVALIDITY 1407165099] UIDs valid | ||
+ | * OK [UIDNEXT 4] Predicted next UID | ||
+ | & | ||
+ | </ | ||
+ | Als nächstes rufen wir mit dem Befehl **FETCH** die folgenden Daten der eMail ab: | ||
+ | * Flags | ||
+ | * Ankunftszeit der eMail | ||
+ | * die Größe der Nachricht | ||
+ | * sowie die Header-Zeilen: | ||
+ | * From: | ||
+ | * To: | ||
+ | * Cc: | ||
+ | * Reply-to | ||
+ | * Message-ID | ||
+ | * Date | ||
+ | * Subject | ||
+ | < | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | & | ||
+ | </ | ||
- | FIXME | + | Nun wollen wir uns unsere Testnachricht herunterladen/ |
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | & | ||
+ | & | ||
+ | & | ||
+ | by imap.nausch.org (Dovecot) with LMTP id uj2JEJjB31OsDwAAOs1BfA | ||
+ | for < | ||
+ | & | ||
+ | & | ||
+ | & | ||
+ | & | ||
+ | & | ||
+ | & | ||
+ | & | ||
+ | & | ||
+ | & | ||
+ | & | ||
+ | </ | ||
+ | |||
+ | Genau auch wie bei **POP3** kennt das IMAP-Protokoll den Befehl **NOOP**, mit dem die Verbindung aufrecht erhalten werden und/oder getestet werden kann. | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | </ | ||
+ | |||
+ | Wollen wir unsere Nachricht löschen, markieren wir diese als zu löschen; hierzu setzen wir das **Flag** **// | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | & | ||
+ | </ | ||
+ | |||
+ | Zum Löschen der Nachricht vewenden wir nun entweder den Befehl **EXPUNGE**, | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | </ | ||
+ | |||
+ | Zu guter Letzt loggen wir uns noch von unserem IMAP-Server aus und beenden die Verbindung. | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | & | ||
+ | <font style=" | ||
+ | </ | ||
+ | |||
+ | Unsere Aktionen via POP3 wurden im Maillog entsprechend vermerkt. | ||
+ | # less / | ||
+ | < | ||
+ | Aug 4 19:27:33 vml000070 dovecot: imap(django@nausch.org): | ||
+ | Aug 4 19:27:33 vml000070 dovecot: imap(django@nausch.org): | ||
+ | Aug 4 19:27:33 vml000070 dovecot: imap(django@nausch.org): | ||
+ | Aug 4 19:27:33 vml000070 dovecot: imap(django@nausch.org): | ||
+ | Aug 4 19:27:33 vml000070 dovecot: imap(django@nausch.org): | ||
+ | Aug 4 19:35:13 vml000070 dovecot: imap(django@nausch.org): | ||
+ | </ | ||
+ | |||
+ | Auf unserem IMAP-Server ist die gelöschte Nachricht auch nichtmehr vorhanden, da diese ja mit dem Befehl **CLOSE** des Client gelöscht wurde. | ||
+ | < | ||
+ | └── Maildir/ | ||
+ | ├── cur/ | ||
+ | ├── dovecot.index.cache | ||
+ | ├── dovecot.index.log | ||
+ | ├── dovecot-uidlist | ||
+ | ├── dovecot-uidvalidity | ||
+ | ├── dovecot-uidvalidity.53dfa2ab | ||
+ | ├── new/ | ||
+ | └── tmp/ | ||
+ | </ | ||
====== Links ====== | ====== Links ====== | ||
Zeile 1654: | Zeile 2221: | ||
~~DISCUSSION~~ | ~~DISCUSSION~~ | ||
+ |