(PHP 4, PHP 5, PHP 7)
imap_open — Öffnet eine Verbindung zu einem Mailserver-Postfach
$mailbox
, string $username
, string $password
[, int $options
= 0
[, int $n_retries
= 0
[, array $params
= NULL
]]] )
Ö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.
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] "}mailbox_name" angegeben:
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_SECURE
- Keine unsichere Verbindung zum Server öffnen
n_retries
Maximale Anzahl Verbindungsversuche
Liefert einen IMAP Stream oder FALSE
bei Fehlern.
Version | Beschreibung |
---|---|
5.2.0 | n_retries hinzugefügt |
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);
?>