imap_open

(PHP 4, PHP 5, PHP 7)

imap_openÖffnet einen IMAP-Stream zu einem Mailserver-Postfach

Beschreibung

imap_open ( string $mailbox , string $username , string $password [, int $options = 0 [, int $n_retries = 0 [, array $params = array() ]]] ) : resource

Öffnet einen IMAP-Stream zum Postfach mailbox.

Diese Funktion kann neben IMAP auch POP3 und NNTP Verbindungen aufbauen, einige Funktionen und Eigenschaften sind aber nur in IMAP Verbindungen verfügbar.

Parameter-Liste

mailbox

Ein Postfachname besteht aus einer Angabe des Servers und aus dem Pfad zum Postfach auf diesem Server. Der reservierte Name INBOX steht für das persönliche Postfach des aktuellen Benutzers. Enthält der Name des Postfach internationale Zeichen außerhalb des druckbaren ASCII Bereichs so müssen diese mit imap_utf7_encode() kodiert werden.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

Der Serverteil wird in '{' und '}' eingebettet, er besteht aus dem Namen oder der IP-Adresse des Servers, einer optionalen Portnummer (eingeleitet mit ':' und einer optionalen Protokollangabe (eingeleitet mit '/').

Die Angabe des Serverteils ist immer zwingend.

Alle Namen, die mit { beginnen, bezeichnen Serverdienste und werden in der Form "{" remote_system_name [":" port] [flags] "}[mailbox_name]" angegeben:

  • remote_system_name - DNS Servername oder IP-Adresse des Servers in eckigen Klammern
  • port - optionale Portnummer, Standard ist der jeweilige Standardport des gewählten Protokolls
  • flags - Optionsflags, s.u.
  • mailbox_name - Name des gewünschten Serverpostfachs, Standard ist "INBOX"

Optional flags for names
Flag Description
/service=service Postfach-Zugriffsprotokoll, Standard ist "imap"
/user=user Benutzername für die Anmeldung auf dem Mailserver
/authuser=user Benutzername für die Remote-Authentifizierung; falls angegeben, ist dies der Benutzername dessen Passwort verwendet wird (z.B. administrator)
/anonymous Zugriff als anonymer Benutzer
/debug Protokollausgaben in das Fehlerlog des Webservers leiten
/secure Übertragung von Klartext-Passwörtern wird verhindert
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 Kurzform für /service=imap
/pop3 Kurzform für /service=pop3
/nntp Kurzform für /service=nntp
/norsh Für eine vorauthentifizierte IMAP Verbindung soll weder rsh noch ssh verwendet werden
/ssl Secure Socket Layer (SSL) zur Verschlüsselung der Verbindung verwenden
/validate-cert TLS/SSL Zertifikate verifizieren (Standardverhalten)
/novalidate-cert TLS/SSL Zertifikate nicht verifizieren, wird für selbstsignierte Zertifikate benötigt
/tls start-TLS Verschlüsselung erzwingen, Verbindungen von Servern die dies nicht unterstützen ablehnen.
/notls start-TLS nicht verwenden, auch wenn es der Server unterstützt
/readonly Nur lesender Zugriff auf den Server ohne serverseitige Änderung von Daten (nur für IMAP, NNTP ignoriert dies, POP3 und SMTP verweigern readonly Verbindungen)

username

Der Benutzername

password

Das Passwort von username

options

Der Parameter options kann sich als Bitmaske aus folgenden Werten zusammensetzen:

  • OP_READONLY - Nur lesende Zugriffe
  • OP_ANONYMOUS - ein existierendes .newsrc weder lesen noch aktualisieren (nur NNTP)
  • OP_HALFOPEN - Verbindung zum Server öffnen aber noch kein Postfach auswählen (nur IMAP und NNTP).
  • CL_EXPUNGE - Zum löschen markierte Nachrichten beim Schließen des Postfachs automatisch entfernen (siehe auch imap_delete() und imap_expunge())
  • OP_DEBUG - Debug Protokoll
  • OP_SHORTCACHE - verkürztes Cacheing
  • OP_SILENT - Ereignisse nicht weitergeben (interne Einstellung)
  • OP_PROTOTYPE - Driver Prototyp zurückgeben
  • OP_SECURE - Keine unsichere Verbindung zum Server öffnen

n_retries

Maximale Anzahl der Verbindungsversuche

params

Verbindungsparameter. Die folgenden (Zeichenketten-)Schlüssel können verwendet werden, um einen oder mehrere Verbindungsparameter anzugeben:

  • DISABLE_AUTHENTICATOR - Deaktiviere Authentifizierungs-Eigenschaften

Rückgabewerte

Liefert einen IMAP Stream oder FALSE bei Fehlern.

Changelog

Version Beschreibung
5.3.2 params hinzugefügt
5.2.0 n_retries hinzugefügt

Beispiele

Beispiel #1 Verschiedene imap_open() Aufrufe

<?php
// Verbindung zu einem IMAP server auf Port 143 des lokalen Rechners 
$mbox imap_open("{localhost:143}INBOX""user_id""password");

// Verbindung zu einem POP3 server auf Port 110 des lokalen Rechners 
$mbox imap_open ("{localhost:110/pop3}INBOX""user_id""password");

// Für SSL verschlüsselte Verbindungen wird /ssl an die 
// Protokollspezifikation angefügt
$mbox imap_open ("{localhost:993/imap/ssl}INBOX""user_id""password");

// Zur SSL Verbindung mit Servern mit selbstsignierten Zertifikaten 
// muss zusätzlich /novalidate-cert angefügt werden
$mbox imap_open ("{localhost:995/pop3/ssl/novalidate-cert}""user_id""password");

// Verbindung zu einem NNTP server auf Port 119 des lokalen Rechners 
$nntp imap_open ("{localhost:119/nntp}comp.test""""");

// Für Verbindungen zu anderen Servern ersetzen Sie "localhost" mit
// dem Namen oder der IP-Adresse des Servers
?>

Beispiel #2 imap_open() Beispiel

<?php
$mbox 
imap_open("{imap.example.org:143}""username""password");

echo 
"<h1>Postfächer</h1>\n";
$folders imap_listmailbox($mbox"{imap.example.org:143}""*");

if (
$folders == false) {
    echo 
"Abruf fehlgeschlagen<br />\n";
} else {
    foreach (
$folders as $val) {
        echo 
$val "<br />\n";
    }
}

echo 
"<h1>Nachrichten in INBOX</h1>\n";
$headers imap_headers($mbox);

if (
$headers == false) {
    echo 
"Abruf fehlgeschlagen<br />\n";
} else {
    foreach (
$headers as $val) {
        echo 
$val "<br />\n";
    }
}

imap_close($mbox);
?>

Siehe auch