PHP Handbuch
Zurück |  | Weiter

# imap_open

(PHP 3, PHP 4, PHP 5)

imap_open -- Öffnet eine Verbindung zu einem Mailserver-Postfach

## Beschreibung

resource imap_open ( string mailbox, string username, string password [, int options [, int n_retries]] )

Öffnet eine Verbindung 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.

  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] "}"` 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"

  Tabelle 1. Optional flags for names

  Flag | Description
  --- | ---
  `/service=`service | Postfach-Zugriffsprotokoll, Standard ist "imap"
  `/user=`user | Benutzername auf dem Mailserver
  `/authuser=`user | remote authentication user; if specified this is the user name whose password is used (e.g. 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 zum Benutzernamen

`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_EXPUNGE` - Silently expunge recycle stream

  - `OP_SECURE` - Authentifikation nicht absichern

`n_retries`

  Maximale Anzahl Verbindungsversuche

## Rückgabewerte

Liefert einen IMAP Stream oder ??? bei Fehlern.

## ChangeLog

Version | Beschreibung
--- | ---
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

imap_close()

Zurück | Zum Anfang | Weiter
imap_num_recent | Nach oben | imap_ping