Emails aus Mailbox über PHP auslesen

Mit PHP kann man sehr einfach Emails senden wie ich in einem meiner Artikel bereits gezeigt habe. PHP bietet zudem auch zahlreiche Möglichkeiten Mails aus einer Mailbox automatisch auszulesen. So könnte man ein automatisches System erstellen, welches Mails lesen kann und anhand des Inhalts verschiedene Aktionen ausführen kann.

Emails aus Mailbox über PHP auslesenEmails aus Mailbox über PHP auslesen

Man kann über PHP eine IMAP oder POP Mailbox sehr einfach auslesen. Ich habe das zuletzt in einem Projekt verwendet.

Imap

Das Internet Message Access Protocol bietet im Gegensatz zu anderen Protokollen wie POP3 mehr Möglichkeiten an mit der Mailbox und den Mails zu interagieren. Aus diesem Grund verwende ich hier in dem Beispiel IMAP.

Verbindung zur Mailbox aufbauen

Im folgenden Code zeige ich wie man sich mit einer Mailbox verbindet:

Für die Verbindung benötigen wir die imap_open Funktion. Dieser Funktion übergeben wir alle erforderlichen Daten. Das sind:

  • Server
    der erste Parameter ist der Server auf dem das IMAP Postfach läuft. Man gibt hier den Server und auch den Port an. Für IMAP ist das 143. Eventuell kann hier ein andere Port verwendet werden. Bei SSL geschützten Verbindungen benötigt man den Port 993.
  • Benutzername/Loginname
    als nächstes ist der Benutzername bzw. der Kontoname anzugeben. Das sollte üblicherweise die Mailadresse sein von der man die Mails abrufen möchte.
  • Passwort
    das ist das Passwort der Mailbox.
  • optionale Parameter
    es gibt einige optionale Parameter die man angeben kann. In diesem Beispiel wollen wir die Mails nur lesen und die Daten der Mailbox nicht verändern.

Als Ergebnis erhält man von der Funktion einen IMAP stream der Mailbox oder im Fehlerfall false.

Header und Body auslesen

Mit dem IMAP stream können wir nun mit den Funktionen imap_headers und imap_fetchbody sowohl Headerinformationen der Mails als auch deren Inhalt auslesen. Das funktioniert für normale Text Emais als auch für HTML Mails.

Fazit

Es ist sehr einfach aus einer Mailbox die Emails mit Header und Body auszulesen und in einem Skript darzustellen. Über PHP kann man Mails und deren Attachements auslesen und verarbeiten. Die Mails können in der Mailbox verschoben oder gelöscht werden. Eine perfekte Möglichkeit um den Mailspeicher bei Gmail für das eigene Projekt zu nutzen.

(Visited 2.920 times, 1 visits today)

2 Antworten

  1. unibert sagt:

    danke für den Code. Bei mir führt er aber zu einer Fehlermeldung in der Ausgabe ganz oben:

    Warning: imap_fetchbody() [function.imap-fetchbody]: Bad message number in /homepages……… on line („$text = imap_fetchbody($mbox, $no, 1)“);

    ein zuvor eingefügtes:
    $no=1;
    behebt das…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.