LXVII. IMAP, POP3 and NNTP Functions

Einführung

Die Funktionen dieser Extension ermöglichen die Kommunikation mit IMAP, NNTP und POP3 Servern sowie den Zugriff auf lokale Mailbox-Dateien.

Einige Funktionen dieser Extension setzten allerdings das IMAP-Protokoll voraus.

Anforderungen

Diese Extension benötigt die c-client Bibliothek, die jeweils aktuelle Version des Quellcodes dieser Bibliothek findet sich unter ftp://ftp.cac.washington.edu/imap/.

Wenn Sie die Bibliothek selbst kompilieren ist es wichtig das Sie die Headerdateien nicht direkt im Standard-Includeverzeichnis ablegen da dies zu Namenskonflikten führen kann. Stattdessen sollten sie ein neues Unterverzeichnis, z.B. /usr/local/imap-2000b/, mit zwei weiteren Unterverzeichnissen lib und include anlegen. Kopieren sie alle *.h aus den c-client Quellcodeverzeichnis in das neue include Verzeichnis und alle *.c Dateien in das neue lib Verzeichnis. Die bei der Kompilation des Bibliotheksquellcodes erzeugte Datei c-client.a kopieren als libc-client.a ebenfalls in das neue lib Verzeichnis.

Anmerkung: Nähere Informationen zur Aktivierung der SSL und Kerberos Unterstützung der Bibliothek finden Sie in der im Sourcepacket enthaltenen Dokumentation.

Anmerkung: Mandrake Linux liefert die IMAP Bibliothek libc-client.a) ohne Kerberos-Unterstützung aus. Eine seperate Version mit SSL-Unterstützung wird als client-PHP4.a mitgeliefert. Für Kerberos-Unterstützung müssen Sie die Bibliothek selbst kompilieren.

Installation

Um diese Funktionen zu nutzen müssen sie PHP mit --with-imap[=DIR] kompilieren, wobei DIR der Installationsprefix der c-client Bibliothek ist. Wenn Sie diese wie oben angegeben installiert haben können Sie --with-imap=/usr/local/imap-2000b als Konfigurationsoption angeben. Windows-Benutzer können die php_imap.dll DLL in php.ini einbinden. IMAP wird beginnend mit Windows 2000 unterstützt, älteren Windows-Versionen fehlen die benötigten Verschlüsselungsfunktionen um SSL-verschlüsselte Verbindungen zum Mailserver zu ermöglichen.

Anmerkung: Je nachdem wie c-client konfiguriert wurde müssen Sie eventuall --with-imap-ssl=/path/to/openssl/ und/oder --with-kerberos=/path/to/kerberos zu den PHP Konfigurationsoptionen hinzufügen.

Warnung

Die IMAP Erweiterung kann nicht zusammen mit recode, YAZ oder Cyrusverwendet werden. Diese Tatsache liegt darin begründet, dass beide Erweiterungen gleiche interne Symbole benutzen.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

NIL (integer)

OP_DEBUG (integer)

OP_READONLY (integer)

Postfach nur zum Lesen öffnen

OP_ANONYMOUS (integer)

Für News keine .newsrc Datei lesen oder schreiben (nur NNTP)

OP_SHORTCACHE (integer)

OP_SILENT (integer)

OP_PROTOTYPE (integer)

OP_HALFOPEN (integer)

Verbindung aufbauen aber noch kein Postfach öffnen (IMAP und NNTP)

OP_EXPUNGE (integer)

OP_SECURE (integer)

CL_EXPUNGE (integer)

Löschen aller dazu markierten Nachrichten beim Beenden der Verbindung mit imap_close()

FT_UID (integer)

Der Parameter ist eine UID

FT_PEEK (integer)

Das \Seen Flag nicht verändern

FT_NOT (integer)

FT_INTERNAL (integer)

Der Ergebnistext ist in internem Format, es wurde keine Umwandlung der Zeilenenden vorgenommen.

FT_PREFETCHTEXT (integer)

ST_UID (integer)

Die übergebene Sequenz enthält UIDs an Stelle von Nachrichtennummern

ST_SILENT (integer)

ST_SET (integer)

CP_UID (integer)

Die Sequenz enthält UIDs

CP_MOVE (integer)

Lösche Nachrichten aus dem aktuellen Postfach nachdem sie mit imap_mail_copy() kopiert wurden.

SE_UID (integer)

Liefere UIDs an Stelle von Nachrichtennummern zurück

SE_FREE (integer)

SE_NOPREFETCH (integer)

Suchergebnisse nicht vorab übertragen

SO_FREE (integer)

SO_NOSERVER (integer)

SA_MESSAGES (integer)

SA_RECENT (integer)

SA_UNSEEN (integer)

SA_UIDNEXT (integer)

SA_UIDVALIDITY (integer)

SA_ALL (integer)

LATT_NOINFERIORS (integer)

Das Postfach enthält keine weiteren Unterpostfächer

LATT_NOSELECT (integer)

Dieses Postfach enthält nur Unterpostfächer, keine Nachrichten, und kann daher nicht geöffnet werden

LATT_MARKED (integer)

Das Postfach ist markiert (nur UW-IMAPD)

LATT_UNMARKED (integer)

Das Postfach ist nicht markiert (nur UW-IMAPD)

SORTDATE (integer)

Sortieren nach Sendedatum in imap_sort()

SORTARRIVAL (integer)

Sortieren nach Empfangsdatum in imap_sort()

SORTFROM (integer)

Sortieren nach Absender in imap_sort()

SORTSUBJECT (integer)

Sortieren nach Betreff in imap_sort()

SORTTO (integer)

Sortieren nach Empfänger in imap_sort()

SORTCC (integer)

Sortieren nach Cc Adresse in imap_sort()

SORTSIZE (integer)

Sortieren nach Größe in imap_sort()

TYPETEXT (integer)

TYPEMULTIPART (integer)

TYPEMESSAGE (integer)

TYPEAPPLICATION (integer)

TYPEAUDIO (integer)

TYPEIMAGE (integer)

TYPEVIDEO (integer)

TYPEOTHER (integer)

ENC7BIT (integer)

ENC8BIT (integer)

ENCBINARY (integer)

ENCBASE64 (integer)

ENCQUOTEDPRINTABLE (integer)

ENCOTHER (integer)

Siehe auch

Dieses Dokument kann nicht alle von den enthaltenen Funktionen berührten Themenbereiche im Detail beschreiben. Weitergehende Informatione finden sie in der Dokumentation zum c-client Sourcecode (docs/internal.txt) und in den folgenden RFC Standarddokumenten:

  • RFC2821: Simple Mail Transfer Protocol (SMTP).

  • RFC2822: Standard for ARPA internet text messages.

  • RFC2060: Internet Message Access Protocol (IMAP) Version 4rev1.

  • RFC1939: Post Office Protocol Version 3 (POP3).

  • RFC977: Network News Transfer Protocol (NNTP).

  • RFC2076: Common Internet Message Headers.

  • RFC2045 , RFC2046 , RFC2047 , RFC2048 & RFC2049: Multipurpose Internet Mail Extensions (MIME).

Einen detailierten Überblick über die relevanten Themen bieten auch die Bücher Programming Internet Email von David Wood und Managing IMAP von Dianna Mullet & Kevin Mullet.

Inhaltsverzeichnis
imap_8bit -- Konvertiert einen 8bit String in einen quoted-printable String
imap_alerts -- Liefert alle aufgetretenen IMAP Alarmnachrichten
imap_append -- String als Nachricht in einem Postfach ablegen
imap_base64 -- Dekodiert Base-64 kodierten Text
imap_binary -- Konvertiert einen 8 Bit String in einen Base64 codierten String
imap_body -- Liefert den Körper einer Nachricht
imap_bodystruct -- Liefert die Struktur eines bestimmten Nachrichtenteils
imap_check -- Informationen zum aktuellen Postfach
imap_clearflag_full -- Löscht Flags einer Nachricht
imap_close -- Schließt einen IMAP Stream
imap_createmailbox -- Anlegen eines neuen Postfachs
imap_delete -- Nachrichten im aktuellen Postfach zur Löschung markieren
imap_deletemailbox -- Löscht ein Postfach
imap_errors -- Diese Funktion liefert alle bisher aufgetretenen Fehlermeldungen
imap_expunge -- Löscht alle zum Löschen markierte Nachrichten
imap_fetch_overview -- Liefert einen Auszug aus den Kopfdaten von Nachrichten
imap_fetchbody -- Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht
imap_fetchheader -- Liefert den Kopf einer Nachricht
imap_fetchstructure -- Ermittelt die Struktur einer Nachricht
imap_get_quota -- Liefert Quota-Beschränkungen und Nutzungsstatistik der Postfächer
imap_get_quotaroot -- Liefert die Quota-Beschränkungen für ein Benutzerpostfach
imap_getacl -- Liste der Zugriffsrechte für ein Postfach bestimmen
imap_getmailboxes -- Liefert detailierte Informationen zu allen verfügbaren Postfächern
imap_getsubscribed -- Liste aller abonnierten Postfächer
imap_header -- Alias von imap_headerinfo()
imap_headerinfo -- Liest die Kopfdaten einer Nachricht
imap_headers -- Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs
imap_last_error -- Liefert die letzte IMAP-Fehlermeldung für dieses Script
imap_list -- Liste der Postfächer lesen
imap_listmailbox -- Alias von imap_list()
imap_listscan -- Listet Postfächer nach Suchkriterien
imap_listsubscribed -- Alias von imap_lsub()
imap_lsub -- Liste aller abonierten Postfächer
imap_mail_compose -- Erzeugt eine MIME-Nachricht aus Kopf- und Nachrichtenelementen
imap_mail_copy -- Kopiert Nachrichten in ein Postfach
imap_mail_move -- Verschiebt Nachrichten in ein anderes Postfach
imap_mail -- Sendet eine Email Nachricht
imap_mailboxmsginfo -- Informationen zum aktuellen Postfach
imap_mime_header_decode -- Dekodiert MIME-codierte Headerzeilen
imap_msgno -- Liefert die Nachrichtennummer für eine gegebene UID
imap_num_msg -- Anzahl der Nachrichten im aktuellen Postfach
imap_num_recent -- Nummer der kürzlich eingetroffenen Nachrichten
imap_open -- Öffnet eine Verbindung zu einem Mailserver-Postfach
imap_ping -- Prüft einen IMAP-Stream auf Funktionalität
imap_qprint -- Konvertiert einen quoted-printable kodierten String in einen 8 Bit String
imap_renamemailbox -- Ändert den Namen eines Postfachs
imap_reopen -- Wechselt das aktuelle Postfach der Verbindung
imap_rfc822_parse_adrlist -- Zerlegt einen Mailadressstring
imap_rfc822_parse_headers -- Email-Kopfzeilen aus einem String auslesen
imap_rfc822_write_address -- Bildet aus Realnamen, Postfach und Server eine korekt formatierte Mail-Adresse
imap_savebody -- Speichert einen bestimmten Body-Abschnitt einer Nachricht als Datei
imap_scanmailbox -- Alias von imap_listscan()
imap_search -- Liefert ein Array von Nachrichten die den gegebenen Suchkriterien entsprechen
imap_set_quota -- Setzt die Mengenbeschrenkung für ein Postfach
imap_setacl -- Setzen der ACL für ein Postfach
imap_setflag_full -- Setzt Nachrichtenflags
imap_sort -- Sortiert Nachrichten eines Postfachs
imap_status -- Liefert Statusinformationen zum angegebenen Postfach
imap_subscribe -- Abbonieren eines Postfachs
imap_thread -- Liefert einen Baum zusammenhängender Nachrichten
imap_timeout -- IMAP timeout setzen oder abfragen
imap_uid -- Liefert die UID für die gegebene Nachrichtennummer
imap_undelete -- Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück
imap_unsubscribe -- Abbonement eines Postfachs rückgängig machen
imap_utf7_decode -- Dekodiert einem String im modifizierten UTF-7 Format.
imap_utf7_encode -- Kodiert ISO-8859-1 Text im modifizieren UTF-7 Format
imap_utf8 -- Konvertiert Text zu UTF8