imap_open
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_open — Öffnet einen IMAP-Stream zu einem Postfach
Beschreibung
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.WarnungDie Ü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=
servicePostfach-Zugriffsprotokoll, Standard ist "imap" /user=
userBenutzername für die Anmeldung am Mailserver /authuser=
userBenutzername 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 (nurelt
) -
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("143INBOX", "user_id", "password");
// Verbindung zu einem POP3-Server auf Port 110 des lokalen Rechners
$mbox = imap_open ("110/pop3INBOX", "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 ("993/imap/sslINBOX", "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 ("995/pop3/ssl/novalidate-cert", "user_id", "password");
// Verbindung zu einem NNTP-Server auf Port 119 des lokalen Rechners
$nntp = imap_open ("119/nntpcomp.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);
?>