Heim > Backend-Entwicklung > PHP-Tutorial > Behandeln Sie eingehende E -Mails mit SendGrid ab

Behandeln Sie eingehende E -Mails mit SendGrid ab

Christopher Nolan
Freigeben: 2025-02-23 09:39:15
Original
919 Leute haben es durchsucht

sendGrid: Ein leistungsstarkes Tool zum Konvertieren von E -Mails in Apps

sendGrid ist nicht nur ein Dienst, der E-Mails in Stapeln sendet, sondern auch eine weniger bekannte leistungsstarke Funktion: Bearbeitungsbearbeitung. Mit einer einfachen Konfiguration können Sie SendGrid alle E -Mails unter dem angegebenen Domänennamen verarbeiten und E -Mail -Nachrichten an Ihren Server senden. In diesem Artikel wird mit SendGrid eine Funktion "Mail an Artikel" erstellt.

Kernpunkte:

  • SendGrids Inbound -Mail -Auflösungsfunktion kann alle Nachrichten aus einem angegebenen Domänennamen verarbeiten und E -Mail -Informationen in Form einer Postanforderung an die angegebene URI senden.
  • Durch Einrichten eines Webhook können Sie die empfangenen E -Mails anpassen.
  • SendGrids eingehende E -Mail -Auflösungsfunktion wird häufig verwendet, wie z.
  • Die Inbound -Auflösung von SendGrid unterstützt die Verwendung von Wildcard -Subdomains zur Verarbeitung mehrerer E -Mail -Adressen, unterstützt die Sicherheitsdatenübertragung von HTTPS, die Gesamtgröße des Anhangs ist auf 20 MB begrenzt und bietet Dashboard -Aktivitätsprotokolle für das einfache Debuggen.

Anfänger:

Der Beispielcode in diesem Artikel basiert auf dem Slim Framework Framework. Für das einfache Debuggen fügen Sie bitte den folgenden Inhalt im Abschnitt

hinzu: composer.json require

Ändern Sie den Framework -Instantiationscode in
"slim/extras": "dev-develop"
Nach dem Login kopieren
Nach dem Login kopieren
und konfigurieren Sie den Protokoll:

include/services.php

Kopieren Sie die Beispielkonfigurationsdatei in
$app = new Slim(array(
    'view' => new Twig(),
    'templates.path' => $c['config']['path.templates'],
    'log.writer' => new \Slim\Extras\Log\DateTimeFileWriter(array(
        'path' => dirname($c['config']['path.logs']),
        'name_format' => 'Y-m-d',
        'message_format' => '%label% - %date% - %message%'
    ))
));
Nach dem Login kopieren
Nach dem Login kopieren
und setzen Sie Ihren Konfigurationswert (z. B. Datenbankverbindungsinformationen). Fügen Sie den folgenden Code hinzu, um das Verzeichnis festzulegen, in dem die Protokolldatei Datei abgeladen wird, und laden Sie das Bild hoch:

config/config.php

Erstellen Sie diese Verzeichnisse und stellen Sie sicher, dass der Webserver Schreibberechtigungen hat.
'path.logs'    => $basedir . 'logs/',
'path.uploads' => $basedir . 'public/uploads/'
Nach dem Login kopieren
Nach dem Login kopieren

Unsere App bietet registrierten Benutzern einen E -Mail -Alias. Indem wir den Teil vor dem Symbol

in der E -Mail -Adresse des Empfängers übereinstimmen, können wir den Benutzer bestimmen, der ihn veröffentlicht hat. In praktischen Anwendungen müssen Sie möglicherweise komplexere Aliase -Regeln festlegen und E -Mail -Senden -Adressen einschränken. Die Datenbankstruktur definiert zwei Tabellen zum Speichern von Benutzern und Artikeln:

@

Sie benötigen ein SendGrid -Konto (kostenloses Konto ist ausreichend). Gehen Sie nach der Registrierung zur Entwicklerseite und klicken Sie auf "Analysieren Sie die eingehende E -Mail". Geben Sie Ihren Hostnamen und Ihre Callback -URL ein.
CREATE TABLE users (
    id INTEGER NOT NULL AUTO_INCREMENT,
    name VARCHAR(128) NOT NULL ,
    alias VARCHAR(45) NOT NULL ,

    PRIMARY KEY (id) ,
   INDEX alias (alias ASC)
);

CREATE  TABLE posts (
    id INTEGER NOT NULL AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    body TEXT NOT NULL,
    image varchar(255),
    user_id INTEGER NOT NULL,

    PRIMARY KEY (id)
);
Nach dem Login kopieren
Nach dem Login kopieren

Handle Incoming Email with SendGrid Wenn SendGrid eine Nachricht mit dem angegebenen Domänennamen empfängt, sendet er eine Postanforderung an Ihre URL, einschließlich der Informationen zur Absender-, Empfänger-, E -Mail -Körper- und Anhangsinformationen. Schließlich müssen Sie Ihrem Domain -Namen einen MX -Datensatz hinzufügen, der auf

verweist. Der spezifische Betrieb hängt von Ihrem Hosting -Anbieter ab.

mx.sendgrid.net

Callback -Funktion erstellen:

Ihre Bewerbung muss auf die Postanforderung der von Ihnen angegebenen URL antworten, z. B.

"slim/extras": "dev-develop"
Nach dem Login kopieren
Nach dem Login kopieren

Wenn SendGrids "Ping" -Test einen 4xx- oder 5xx -Fehler zurückgibt, stellt er die Anforderung an und versucht erneut 3 Tage. Daher muss ein erfolgreicher Ping -Test einen 200 -Status -Code zurückgeben. Die Post -Anfrage von SendGrid enthält verschiedene Informationen zur E -Mail. Weitere Informationen finden Sie in der Dokumentation SendGrid API. Wir konzentrieren uns hauptsächlich auf die folgenden Felder:

Handle Incoming Email with SendGrid

Da die Feldformate to vielfältig sind, brauchen wir regelmäßige Ausdrücke, um mehrere Empfänger analysieren:

$app = new Slim(array(
    'view' => new Twig(),
    'templates.path' => $c['config']['path.templates'],
    'log.writer' => new \Slim\Extras\Log\DateTimeFileWriter(array(
        'path' => dirname($c['config']['path.logs']),
        'name_format' => 'Y-m-d',
        'message_format' => '%label% - %date% - %message%'
    ))
));
Nach dem Login kopieren
Nach dem Login kopieren

für jeden Empfänger den Alias ​​-Abschnitt extrahieren und den passenden Benutzer finden:

'path.logs'    => $basedir . 'logs/',
'path.uploads' => $basedir . 'public/uploads/'
Nach dem Login kopieren
Nach dem Login kopieren

Erstellen Sie einen Artikel:

CREATE TABLE users (
    id INTEGER NOT NULL AUTO_INCREMENT,
    name VARCHAR(128) NOT NULL ,
    alias VARCHAR(45) NOT NULL ,

    PRIMARY KEY (id) ,
   INDEX alias (alias ASC)
);

CREATE  TABLE posts (
    id INTEGER NOT NULL AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    body TEXT NOT NULL,
    image varchar(255),
    user_id INTEGER NOT NULL,

    PRIMARY KEY (id)
);
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt haben wir die Funktion "Basis -E -Mail an Artikel"! Als nächstes können wir die Anhangsverarbeitungsfunktion hinzufügen, damit Benutzer Bilder über E -Mail -Anhänge hinzufügen können. Die Postanforderung von SendGrid enthält den Parameter attachments, der die Anzahl der Anhänge anzeigt. Die Anhänge werden zusammen mit Anfragen veröffentlicht, und die Verarbeitungsmethode entspricht dem Hochladen von Webformateien.

$app->post('/endpoints/email', function () use ($app, $c) {
Nach dem Login kopieren

Zusammenfassung:

In diesem Artikel wird eine einfache Anwendung der eingehenden E -Mail -Auflösungsfunktion von Sendgrid vorgestellt - die Funktion "Mail an Artikel", mit der Benutzer Artikel durch Senden von E -Mails erstellen können. Durch einfache Rückruffunktionen können Sie verschiedene interessante Funktionen implementieren, wie z.

(Der nachfolgende Inhalt, nämlich der FAQ -Teil, wird aufgrund der Länge des Artikels separat damit umgehen. Der FAQ -Teil kann als neue Frage getrennt eingereicht werden.)

Das obige ist der detaillierte Inhalt vonBehandeln Sie eingehende E -Mails mit SendGrid ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage