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
php artisan command:make EmailParserCommand
Jetzt müssen wir sicherstellen
app/command/EmailParserCommand.php
/** * 控制臺命令名稱。 * * @var string */ protected $name = 'email:parse'; /** * 控制臺命令描述。 * * @var string */ protected $description = '解析傳入的電子郵件。';-Methode hinzu.
fire
/** * 執(zhí)行控制臺命令。 * * @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
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:
/** * 執(zhí)行控制臺命令。 * * @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:
/** * 執(zhí)行控制臺命令。 * * @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!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

TosecurelyHandleAuthenticationAuthorizationInphp, folge theSteps: 1.Alwayshashpasswordswithpassword_hash () und password_verify (), usePreeParedStatementStopreventsQlinjapitca und StoreuserDatain $ _SessionArtelogin.2.ImplementscaChescescesc

Um Datei -Uploads in PHP sicher zu verarbeiten, besteht der Kern darin, Dateitypen zu überprüfen, Dateien umzubenennen und die Berechtigungen zu beschr?nken. 1. Verwenden Sie Finfo_File (), um den realen MIME -Typ zu überprüfen, und nur bestimmte Typen wie Bild/JPEG sind zul?ssig. 2. Verwenden Sie Uniqid (), um zuf?llige Dateinamen zu generieren und sie im Root-Verzeichnis ohne Web zu speichern. 3.. Begrenzen Sie die Dateigr??e durch Php.ini- und HTML -Formulare und setzen Sie die Verzeichnisberechtigungen auf 0755; 4. Verwenden Sie Clamav, um Malware zu scannen, um die Sicherheit zu verbessern. Diese Schritte verhindern effektiv Sicherheitslücken und stellen sicher, dass der Upload -Prozess des Datei -Uploads sicher und zuverl?ssig ist.

In PHP ist der Hauptunterschied zwischen == und == die Strenge der Typprüfung. == Die Konvertierung des Typs wird vor dem Vergleich durchgeführt, beispielsweise 5 == "5" gibt true zurück und === fordert an, dass der Wert und der Typ gleich sind, bevor True zurückgegeben wird, z. B. 5 === "5" gibt false zurück. In den Nutzungsszenarien ist === sicherer und sollte zuerst verwendet werden, und == wird nur verwendet, wenn die Typumwandlung erforderlich ist.

Die Methoden zur Verwendung grundlegender mathematischer Operationen in PHP sind wie folgt: 1. Additionszeichen unterstützen Ganzfaktoren und Floating-Punkt-Zahlen und k?nnen auch für Variablen verwendet werden. String -Nummern werden automatisch konvertiert, aber nicht für Abh?ngigkeiten empfohlen. 2. Subtraktionszeichen verwenden - Zeichen, Variablen sind gleich, und die Typumwandlung ist ebenfalls anwendbar. 3. Multiplikationszeichen verwenden * Zeichen, die für Zahlen und ?hnliche Zeichenfolgen geeignet sind; 4. Division verwendet / Zeichen, die vermeiden müssen, durch Null zu dividieren, und beachten Sie, dass das Ergebnis m?glicherweise schwimmende Punktzahlen sein kann. 5. Die Modulzeichen k?nnen verwendet werden, um ungerade und sogar Zahlen zu beurteilen, und wenn negative Zahlen verarbeitet werden, stimmen die Restzeichen mit der Dividende überein. Der Schlüssel zur korrekten Verwendung dieser Operatoren liegt darin, sicherzustellen, dass die Datentypen klar sind und die Grenzsituation gut behandelt wird.

Ja, PHP kann mit NoSQL -Datenbanken wie MongoDB und Redis durch bestimmte Erweiterungen oder Bibliotheken interagieren. Verwenden Sie zun?chst den MongoDBPHP -Treiber (installiert über PECL oder Composer), um Client -Instanzen zu erstellen und Datenbanken und Sammlungen zu betreiben, wobei Sie Insertion, Abfrage, Aggregation und andere Vorg?nge unterstützen. Zweitens verwenden Sie die Predis Library oder PHPREDIS-Erweiterung, um eine Verbindung zu Redis herzustellen, Schlüsselwerteinstellungen und -akquisitionen durchzuführen und PHPREDIS für Hochleistungsszenarien zu empfehlen, w?hrend Predis für die schnelle Bereitstellung bequem ist. Beide sind für Produktionsumgebungen geeignet und gut dokumentiert.

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPBECAMEPOPULARFORWebDevelopmentDuetoitSeaseoflearning, Seamlessintegrationwithhtml, weit verbreitete Hostingsupport, andalargeecosystemincludingFrameWorkelaravelandcmsplatformen -?hnliche WordPress.itexcelsinformlingsformen, Managingusesersions, Interacti

Tosettherighttimezoneinphp, usedate_default_timezone_set () functionAtthestartofyourScriptWithAvalididentifiersuchas'america/new_york'.1.usedate_default_timezone_set () beeanydate/timeFununtions.2.Alternativ, konfigurieren
