suchen
HeimBackend-EntwicklungPHP-TutorialRohrleitungs -E -Mails an eine Laravel -Bewerbung

Piping Emails to a Laravel Application

Kernpunkte

    Die Handwerksanerin für das Befehlszeilenwerkzeug von
  • Laravel kann erweitert werden, um RAW -E -Mails zu erhalten und in Ihrer Bewerbung zu verwenden. Dies beinhaltet die Erstellung eines neuen Befehls wie php artisan email:parse, der in Artisan registriert und ausgeführt werden kann, um die ursprüngliche Nachricht aus dem IO -Stream abzurufen.
  • Verwenden Sie php-mime-mail-parser usw., um die ursprüngliche Nachricht in einen separaten Abschnitt aufzulösen. Dies ermöglicht das Abrufen von Header wie das Thema und den Körper der E -Mail. Die Parsen -Mail kann dann leicht in der Datenbank gespeichert werden.
  • Diese Einstellung kann auch alle Anhänge in der Nachricht verarbeiten. Nach dem Abrufen von Anhängen können Sie ein Dateisystemobjekt erstellen, um die Datei auf dem Server zu speichern. Abhängig vom verwendeten Tool oder dem verwendeten E -Mail -Server können verschiedene Methoden verwendet werden, um E -Mails an die Anwendung zu liefern.

Einführung

Sie sehen dies häufig in Projekten für Projektmanagement oder Support -Management: Sie können auf E -Mails antworten und es wird automatisch in Ihrer Webanwendung angezeigt. Diese Tools können diese E -Mails direkt in ihre Systeme importieren.

In diesem Artikel lernen wir, wie Sie E -Mails an unsere Laravel 4 -Anwendung übermitteln. Dazu begannen wir mit einem brandneuen Laravel 4 -Projekt, das wie unten gezeigt über Komponisten installiert wurde.

composer create-project laravel/laravel your-project-name --prefer-dist

Erstellen Sie Artisan -Befehl

Um E -Mails in unsere Bewerbung importieren zu können, müssen wir die E -Mails über die Befehlszeile an unsere Bewerbung liefern. Glücklicherweise verfügt Laravel über ein Befehlszeilen -Tool namens Artisan, das mehrere Aufgaben ausführen kann. Um eine Liste aller Aufgaben anzuzeigen, die Artisan ausführen kann, können Sie in dem Stammverzeichnis Ihres Projekts php artisan list ausführen.

In diesem Fall möchten wir, dass es eine ganz bestimmte Aufgabe ausführt: Akzeptieren Sie die ursprüngliche E -Mail und verwenden Sie sie in unserer Anwendung. Leider ist dies keiner der grundlegenden Merkmale, die sich mit Artisan handeln kann. Wir können es leicht mit dem neuen Befehl erweitern: php artisan email:parse. Wir werden dann Artisan starten und in diesem Fall eine bestimmte Aufgabe namens email:parse ausführen.

Unser erster Schritt ist, diesen Befehl zu erstellen. Sie können einen neuen Befehl über den eigenen Befehl von Artisan erstellen, um einen neuen Befehl zu erstellen. Führen Sie einfach den folgenden Befehl im Stammverzeichnis des Projekts aus:

php artisan command:make EmailParserCommand

Wenn alles gut läuft, finden Sie jetzt eine Datei mit dem Namen app/commands im Verzeichnis EmailParserCommand.php. Öffnen Sie es in Ihrem bevorzugten Editor und sehen Sie sich die Eigenschaften $name und $description an. Wir können es nach Bedarf anpassen. Indem der Befehl einen klaren Namen und eine klare Beschreibung gibt, wird der Befehl in der Handwerksbefehlsliste gut aufgeführt.

Zum Beispiel habe ich es dazu geändert:

/**
 * 控制台命令名称。
 *
 * @var string
 */
protected $name = 'email:parse';

/**
 * 控制台命令描述。
 *
 * @var string
 */
protected $description = '解析传入的电子邮件。';

Registrierung der Reihenfolge

Wenn wir in der Stammin unseres Projekts php artisan email:parse ausführen, erhalten Sie eine Nachricht, dass dieser Befehl noch nicht registriert wurde. Unser nächster Schritt besteht darin, sicherzustellen, dass dieser Befehl in Artisan registriert ist. Öffnen wir die Datei app/start/artisan.php und fügen Sie Artisan::add(new EmailParserCommand); zum Ende der Datei hinzu, um unseren neu erstellten Befehl zu registrieren. Wir können jetzt den Befehl list erneut ausführen, um den von uns aufgeführten email:parse -Fehl anzuzeigen. Bitte beachten Sie, dass der Name und die Beschreibung, die Sie gerade ausgefüllt haben, hier angezeigt werden.

Original -E -Mail

abrufen

Wenn ein Befehl durch Handwerker aufgerufen wird, ruft er immer die fire -Methode auf. Zunächst müssen wir hier unsere E -Mail -Parsen hinzufügen. Die E -Mail befindet sich derzeit in unserem IO -Stream und wir können sie von php://stdin abrufen. Wir öffnen diesen IO -Stream und sammeln eine kleine Anzahl von E -Mails, bis wir den gesamten Stream lesen.

composer create-project laravel/laravel your-project-name --prefer-dist

Die E -Mail, die an unseren Handwerksbefehl gesendet wird, befindet sich jetzt in der Variablen $rawEmail. Es ist die gesamte E -Mail mit Header, Körper und Anhängen.

Zeitplan -E -Mail

Wir haben jetzt die ursprüngliche E -Mail, aber ich bevorzuge die E -Mail in mehrere Teile. Ich möchte Header wie Themen und E -Mail -Körper abrufen. Wir können unseren eigenen Code schreiben, um alle diese Teile zu teilen, aber jemand hat ein Paket erstellt, das wir in unserer Anwendung verwenden können. Dieses Paket kann unsere gesamte E -Mail in logische Teile unterteilen. Fügen Sie der folgenden Zeile Ihrer composer.json -Datei hinzu und führen Sie composer update

aus
php artisan command:make EmailParserCommand

Jetzt müssen wir sicherstellen app/command/EmailParserCommand.php

Jetzt können wir die ursprüngliche E -Mail in separate Abschnitte analysieren. Fügen Sie die folgenden Codezeilen zum Ende der
/**
 * 控制台命令名称。
 *
 * @var string
 */
protected $name = 'email:parse';

/**
 * 控制台命令描述。
 *
 * @var string
 */
protected $description = '解析传入的电子邮件。';
-Methode hinzu.

fire

Wir erstellen zuerst einen neuen Parser. Als nächstes setzen wir die ursprüngliche E -Mail in den Text des Parsers und nennen schließlich verschiedene Methoden, um die Daten vom Kopf- oder Körper zu erhalten.
/**
 * 执行控制台命令。
 *
 * @return void
 */
public function fire()
{
    // 从 stdin 读取
    $fd = fopen("php://stdin", "r");
    $rawEmail = "";
    while (!feof($fd)) {
        $rawEmail .= fread($fd, 1024);
    }
    fclose($fd);
}

Sie können jetzt problemlos E -Mails in Ihrer Datenbank speichern. Wenn Sie beispielsweise eine E -Mail -Entität haben, können Sie die E -Mail in Ihrer Datenbank wie folgt speichern:

"messaged/php-mime-mail-parser": "dev-master"
Verarbeitungsanhänge

Möglicherweise möchten Sie sogar alle Anhänge speichern, die Ihrer E -Mail auf Ihrem Server angehängt sind. Die E -Mail -Parser -Klasse kann alle verfügbaren Anhänge verarbeiten. Fügen Sie zunächst erneut die folgenden Zeilen an die Oberseite der

-Klasse hinzu.

app/command/EmailParserCommand.php

Jetzt müssen wir unsere
use MimeMailParser\Parser;
-Methode erweitern:

composer create-project laravel/laravel your-project-name --prefer-dist

Mal sehen, was dieser Teil tatsächlich tut. Die erste Zeile holt den Anhang aus der E -Mail ab. $attachments Eine Variable ist ein Array von Anhangsobjekten. Als nächstes stellen wir sicher, dass ein neues Dateisystemobjekt erstellt wird, das das Speichern der Datei auf unserem Server verarbeitet. Dann fangen wir an, alle Anhänge zu iterieren. Wir nennen die put -Methode des Dateisystems Objekt, das den Pfad und den Inhalt der Datei akzeptiert. In diesem Fall möchten wir die Datei dem Verzeichnis public/uploads hinzufügen und den Dateinamen verwenden, den der Anhang tatsächlich hat. Der zweite Parameter ist der Inhalt der tatsächlichen Datei.

Das ist es! Ihre Dateien werden jetzt in public/uploads gespeichert. Stellen Sie einfach sicher, dass Ihr Mailserver dieses Verzeichnis tatsächlich zu Dateien hinzufügen kann, indem Sie die richtigen Berechtigungen festlegen.

Konfigurieren Sie unseren Mailserver

Bisher haben wir die gesamte App zum Abrufen, Teilen und Speichern unserer E -Mails vorbereitet. Wenn Sie jedoch nicht wissen, wie Sie die E -Mail tatsächlich an Ihren neu erstellten Kunsthandwerksbefehl senden sollen, ist dieser Code nutzlos.

Im Folgenden finden Sie verschiedene Möglichkeiten, Ihre E -Mail an Ihre Anwendung zu liefern, abhängig vom Tool oder dem von Ihnen verwendeten Mailserver. Zum Beispiel möchte ich support@peternijssen.nl an meine App weiterleiten, die sich bei /var/www/supportcenter befindet. Beachten Sie, dass ich in den tatsächlichen Befehlen, die Sie unten sehen werden, jedes Mal --env=local hinzugefügt habe, um sicherzustellen, dass Artisan wie wir auf der Entwicklungsmaschine läuft. Wenn Sie sich in einer Produktionsumgebung befinden, können Sie diesen Abschnitt löschen.

cpanel

Wenn Sie CPANEL verwenden, können Sie im allgemeinen Menü auf die Weiterleitung klicken. Fügen Sie einen neuen Spediteur hinzu und definieren Sie die Adresse, die Sie an Ihre Bewerbung weiterleiten möchten. Klicken Sie auf Erweiterte Einstellungen und wählen Sie die Option Pipe to Programs aus. Im Eingangsfeld können Sie die folgende Zeile einfügen:

php artisan command:make EmailParserCommand

Beachten Sie, dass CPanel einen Pfad relativ zu Ihrem Heimverzeichnis verwendet.

exim

Wenn auf Exim die Datei /etc/valiases/peternijssen.nl öffnen. Stellen Sie sicher, dass in dieser Datei die folgenden Zeilen vorhanden sind:

/**
 * 控制台命令名称。
 *
 * @var string
 */
protected $name = 'email:parse';

/**
 * 控制台命令描述。
 *
 * @var string
 */
protected $description = '解析传入的电子邮件。';

Ausführen newaliases, um die Alias ​​-Datenbank wieder aufzubauen.

postfix

Auf Postfix stellen Sie sicher, dass die folgenden Zeilen in Ihrer /etc/postfix/main.cf -Datei vorhanden sind und nicht kommentiert werden:

/**
 * 执行控制台命令。
 *
 * @return void
 */
public function fire()
{
    // 从 stdin 读取
    $fd = fopen("php://stdin", "r");
    $rawEmail = "";
    while (!feof($fd)) {
        $rawEmail .= fread($fd, 1024);
    }
    fclose($fd);
}

Wenn Sie die Datei ändern müssen, laden Sie Postfix neu, indem Sie service postfix reload ausgeführt werden.

Wir können jetzt einen neuen Alias ​​erstellen, der an unsere Bewerbung übergeben wird. Öffnen Sie /etc/aliases und fügen Sie die folgende Zeile hinzu:

"messaged/php-mime-mail-parser": "dev-master"

Ausführen newaliases, um die Alias ​​-Datenbank wieder aufzubauen.

sendmail

Mit Sendmail sollten Sie zunächst einen Alias ​​in der Datei /etc/aliases erstellen:

use MimeMailParser\Parser;

Ausführen newaliases, um die Alias ​​-Datenbank wieder aufzubauen. Stellen Sie als nächstes sicher, dass der Chmod der Artisan -Datei 755 ist, damit sie ausgeführt werden kann.

Symlink die handwerkliche Datei und Php selbst zu /etc/smrsh

composer create-project laravel/laravel your-project-name --prefer-dist

qmail

Abhängig von Ihrer Installation müssen Sie sicherstellen, dass die folgenden Dateien vorhanden sind:

php artisan command:make EmailParserCommand

oder:

/**
 * 控制台命令名称。
 *
 * @var string
 */
protected $name = 'email:parse';

/**
 * 控制台命令描述。
 *
 * @var string
 */
protected $description = '解析传入的电子邮件。';

Öffnen Sie eine Datei und fügen Sie die folgende Zeile als Inhalt hinzu:

/**
 * 执行控制台命令。
 *
 * @return void
 */
public function fire()
{
    // 从 stdin 读取
    $fd = fopen("php://stdin", "r");
    $rawEmail = "";
    while (!feof($fd)) {
        $rawEmail .= fread($fd, 1024);
    }
    fclose($fd);
}

Schlussfolgerung

Jedes Framework mit verfügbaren Befehlszeilen -Tools kann Ihre E -Mails verarbeiten. Der hier bereitgestellte Code ist nur ein grundlegendes Setup. Abhängig von Ihrem Projekt möchten Sie möglicherweise nur zulassen, dass bestimmte E -Mail -Adressen E -Mails an Ihre App senden. Stellen Sie vor dem Übergeben an Ihre Bewerbung sicher, dass Sie Ihre E -Mails in Tools wie Postfix gefiltert haben.

Wenn Sie eine Art Ticketing -System verwenden möchten, können Sie problemlos versuchen, eine Support -Ticket -ID aus einem E -Mail -Betreff zu extrahieren und auf der E -Mail basierend auf dieser ID mehrere verschiedene Aktionen auszuführen.

Halten Sie die Aufmerksamkeit auf die Protokolldateien des Mailservers. Es gibt Ihnen einige Tipps, wenn die tatsächliche Pipeline in der Lösung der Auflösung fehlschlägt.

(Aus Platzbeschränkungen wird ein Teil der FAQs weggelassen. Der ursprüngliche FAQs -Inhalt hängt schwach zum Thema des Artikels zusammen, und ein Teil des Inhalts wird mit dem Inhalt des Artikels dupliziert, daher kein Pseudo -Originalverarbeitung wird durchgeführt.)

Das obige ist der detaillierte Inhalt vonRohrleitungs -E -Mails an eine Laravel -Bewerbung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Arbeiten mit Flash -Sitzungsdaten in LaravelArbeiten mit Flash -Sitzungsdaten in LaravelMar 12, 2025 pm 05:08 PM

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIsCurl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIsMar 14, 2025 am 11:42 AM

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

PHP -Protokollierung: Best Practices für die PHP -ProtokollanalysePHP -Protokollierung: Best Practices für die PHP -ProtokollanalyseMar 10, 2025 pm 02:32 PM

Die PHP -Protokollierung ist für die Überwachung und Debugie von Webanwendungen von wesentlicher Bedeutung sowie für das Erfassen kritischer Ereignisse, Fehler und Laufzeitverhalten. Es bietet wertvolle Einblicke in die Systemleistung, hilft bei der Identifizierung von Problemen und unterstützt eine schnellere Fehlerbehebung

Vereinfachte HTTP -Reaktion verspottet in Laravel -TestsVereinfachte HTTP -Reaktion verspottet in Laravel -TestsMar 12, 2025 pm 05:09 PM

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

12 Beste PHP -Chat -Skripte auf Codecanyon12 Beste PHP -Chat -Skripte auf CodecanyonMar 13, 2025 pm 12:08 PM

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Erklären Sie das Konzept der späten statischen Bindung in PHP.Erklären Sie das Konzept der späten statischen Bindung in PHP.Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu.Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu.Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools