# imap_open

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_open — Öffnet einen IMAP-Stream zu einem Postfach

### Beschreibung

imap_open(
string `$mailbox`,
string `$user`,
string `$password`,
int `$flags` = 0,
int `$retries` = 0,
array `$options` = []
): IMAP\Connection|false

Öffnet einen IMAP-Stream zum Postfach `mailbox`.

Diese Funktion kann auch verwendet werden, um Streams zu POP3- und NNTP-Servern zu öffnen, einige Funktionen und Eigenschaften sind aber nur bei IMAP-Verbindungen verfügbar.

### Parameter-Liste

`mailbox`

  Ein Postfachname besteht aus einer Serveradresse und 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 Postfachs internationale Zeichen außerhalb des druckbaren ASCII-Bereichs, so müssen diese mit imap_utf7_encode() kodiert werden.

  Warnung

  Die Übergabe von nicht vertrauenswürdigen Daten an diesen Parameter ist unsicher,falls imap.enable_insecure_rsh nicht deaktiviert ist.

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

  Die Angabe des Serverteils ist immer zwingend bei allen Postfach-Parametern.

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

  - `remote_system_name` - der Internet-Domain-Name oder die in Klammern gesetzte IP-Adresse des Servers
  - `port` - die optionale Portnummer, Standard ist der jeweilige Standardport des gewählten Protokolls
  - `flags` - optionale Flags, siehe folgende Tabelle
  - `mailbox_name` - der Name des gewünschten Serverpostfachs, Standard ist "INBOX"

  Optionale Flags
  Flag | Beschreibung
  --- | ---
  `/service=`service | Postfach-Zugriffsprotokoll, Standard ist "imap"
  `/user=`user | Benutzername für die Anmeldung am 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 im Debug-Log der Anwendung aufzeichnen
  `/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 und Verbindungen zu Servern, die dies nicht unterstützen, ablehnen
  `/notls` | `start-TLS` nicht zum Verschlüsseln der Verbindung verwenden, auch wenn es der Server unterstützt
  `/readonly` | Öffnen des Postfachs im Nur-Lese-Modus anfordern (nur für IMAP, NNTP ignoriert dies, POP3 und SMTP verweigern readonly-Verbindungen)

`user`

  Der Benutzername

`password`

  Das Passwort von `user`

`flags`

  Der Parameter `flags` 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` - Protokollverhandlungen debuggen
  - `OP_SHORTCACHE` - kurzes Caching (nur `elt`)
  - `OP_SILENT` - Ereignisse nicht weitergeben (interne Einstellung)
  - `OP_PROTOTYPE` - Treiber-Prototyp zurückgeben
  - `OP_SECURE` - keine unsichere Verbindung zum Server öffnen
`retries`

  Maximale Anzahl der Verbindungsversuche

`options`

  Verbindungsparameter; die folgenden (String-)Schlüssel können verwendet werden, um einen oder mehrere Verbindungsparameter anzugeben:

  - `DISABLE_AUTHENTICATOR` - Deaktiviere Authentifizierungs-Eigenschaften

### Rückgabewerte

Gibt bei Erfolg eine IMAP\Connection-Instanz zurück. Bei einem Fehler wird `false` zurückgegeben.

### Changelog

Version | Beschreibung
--- | ---
8.1.0 | Gibt jetzt eine IMAP\Connection-Instanz zurück; vorher wurde eine Ressource zurückgegeben.

### 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 zu einem IMAP- oder POP3-Server wird
// /ssl an die Protokollspezifikation angefügt
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");
// Zur SSL-Verbindung mit IMAP- oder POP3-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 wird "localhost" mit dem Namen
// oder der IP-Adresse des Servers ersetzt
?>`

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

- imap_close() - Schließt einen IMAP-Stream

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open