Eine der Hauptkomponenten jeder Webanwendung ist die Möglichkeit, E-Mails zu versenden.
Das bedeutet jedoch nicht, dass jede Webanwendung ein eigener E-Mail-Client ist (obwohl die Leute ihre eigenen E-Mail-Clients erstellen).
Stattdessen meine ich, dass die Anwendung normalerweise eine E-Mail sendet, wenn sich ein Benutzer registriert, wenn ein Benutzer sein Passwort ändert, wenn sich etwas im System ändert oder allgemeiner gesagt, wenn etwas passiert, worüber der Websitebesitzer den Benutzer benachrichtigen möchte.
Bisher haben wir in dieser Serie Folgendes behandelt:
Der vorherige Artikel ist wohl einer der komplexesten, den wir behandeln werden. Er ist jedoch für diejenigen notwendig, die ihren Projekten erweiterte Funktionen hinzufügen möchten.
Vor diesem Hintergrund machen wir eine Pause von einigen komplexeren Themen und schauen uns an, was WordPress beim Versenden von E-Mails zu bieten hat.
Bevor wir näher darauf eingehen, was die WordPress-API in Bezug auf das Versenden von E-Mails, das Anpassen von E-Mails und mehr bietet, ist es wichtig, ein paar Dinge über E-Mail zu wissen.
Dennoch ist es wichtig, die Komponenten zu verstehen, die zum Erstellen einer echten E-Mail gehören – schließlich besteht sie aus mehr als nur einer Adresse, einem Betreff und einem Inhalt.
Bevor wir mit der Erstellung unserer eigenen benutzerdefinierten E-Mail beginnen, gibt es einige technische Nuancen, die es zu verstehen gilt.
Kurz gesagt, E-Mail-Header enthalten einen minimalen Satz an Informationen, darunter: Wer hat die E-Mail gesendet und von welcher Adresse die E-Mail gesendet wurde.
Oft sind in der Kopfzeile zusätzliche Informationen enthalten. Zu diesen Informationen kann beispielsweise der Zeitstempel gehören, zu dem die E-Mail gesendet wurde.
Für WordPress wird der im E-Mail-Header angegebene Absender immer als Standardabsender in WordPress definiert, sofern nicht anders angegeben.
Wenn Sie beispielsweise die Antwortadresse auf „donotreply@domain.com“ festlegen möchten, müssen Sie dies anpassen.
Außerdem ist es normalerweise am besten, E-Mail-Header in Form eines Arrays zu verwenden, damit Sie Adressen, CC-Adressen und BCC-Empfänger einfach erstellen, angeben und übergeben können.
Wenn es um das Format geht, dem E-Mails folgen, sehen Sie möglicherweise zwei Formen:
Sie sind es gewohnt, in den meisten modernen E-Mail-Clients HTML zu sehen. Wenn Sie jedoch einen einfacheren Client haben, richten Sie ihn so ein, dass nur einfacher Text angezeigt wird, oder lesen Sie E-Mails auf einem etwas älteren Telefon. Dann lesen Sie den Inhalt im Klartext.
WordPress kann E-Mails als einfachen Text oder HTML senden.
Wir werden genau sehen, wie das geht, wenn wir uns ein Beispiel für das programmgesteuerte Versenden einer E-Mail ansehen. Kurz gesagt, es gibt einen Haken, der es wirklich einfach macht – aber wir warten, bis wir den Rest der notwendigen Teile der E-Mail behandelt haben, um ihn in Aktion zu sehen.
Wie Sie wissen, ist ein Anhang eigentlich jede Datei, die Sie an eine E-Mail anhängen und an den Empfänger senden.
Die Sache ist, es gibt einige Regeln, die E-Mails regeln – aber diese werden nicht unbedingt von der Software festgelegt. Stattdessen schränken Server, E-Mail-Clients und verschiedene andere Regeln ein, was wir in unseren Posteingängen empfangen können.
Zum Beispiel:
Das liegt ohnehin außerhalb unserer Kontrolle – wir müssen nur die Beschränkungen kennen, wem wir E-Mails senden, und sicherstellen, dass wir diese einhalten.
Dazu können Sie ganz einfach Anhänge erstellen, die Sie über WordPress-E-Mails versenden können.
Obwohl Anhänge natürlich nicht erforderlich sind, möchten Sie möglicherweise eine einzelne Datei oder sogar mehrere Dateien anhängen. In WordPress kann dies über einen String oder ein Array erfolgen.
Wir werden jetzt nicht genau sehen, wie das geht, aber wir werden das sofort verstehen, wenn wir uns ein Beispiel für das programmgesteuerte Versenden einer E-Mail ansehen.
Auf der einfachsten Ebene enthält jede E-Mail eine „An“-E-Mail-Adresse, einen „Betreff“ und eine „Nachricht“.
In WordPress sind diese Einstellungen ebenfalls sehr einfach – geben Sie einfach die Zeichenfolgen für jede Einstellung ein und schon kann es losgehen.Wenn Sie eine E-Mail an mehrere Personen senden möchten, können Sie natürlich die Adresssammlung durchlaufen und an jeden Benutzer eine E-Mail senden.
Oder Sie können WordPress eine Reihe von Empfänger-Mail-APIs zur Verfügung stellen, damit die E-Mail gesendet wird An alle Beteiligten senden.
Denken Sie daran: Wenn Sie eine andere reply-to
Adresse angeben möchten, geben Sie diese bitte in der Kopfzeile an, die wir weiter oben in diesem Artikel behandelt haben.
Nach alledem sind wir bereit, einen praktischen Blick auf die WordPress-E-Mail-API zu werfen.
Kurz gesagt, alle Funktionen sind in einer Funktion namens wp_mail
enthalten. Wenn wir jedoch das Angebot dieser Anwendung voll ausnutzen möchten, müssen wir auf einige Dinge achten.
Konkret werden wir die folgenden Haken verwenden:
wp_mail_content_type
Ermöglicht uns, den MIME-Typ der gesendeten E-Mail zu definierenwp_mail_from
是一个过滤器,我们可以使用它来定义发件人地址,而不是使用 $headers
Array wp_mail_from_name
是一个过滤器,我们可以使用它来定义此人的发件人,而不是使用 $headers
Array wp_login
ist ein Hook, den wir für die Demo verwenden, sodass wir jedes Mal, wenn sich jemand beim WordPress-Dashboard anmeldet, eine E-Mail an jemanden senden Der Vollständigkeit halber teile ich unten den gesamten Code und wir gehen ihn dann Schritt für Schritt durch.
<?php function acme_email_individual( $input ) { /** * Note: assume that $input has keys for 'email-address'. */ // Generate the password $password = wp_generate_password ( 12, false ); // Email the user that they're profile was created $message = 'Hey There,'; $message .= '<br /><br />'; $message .= 'Your account has been created. Your login information is below:'; $message .= '<br />'; $message .= '<ul>'; $message .= '<li>Username: ' . $input['email-address'] . '</li>'; $message .= '<li>Password: ' . $password . '</li>'; $message .= '</ul>'; $message .= '<br />'; $message .= 'You can login to the application <a href="' . get_bloginfo( 'siteurl' ) . '">here</a>.'; add_filter( 'wp_mail_content_type', create_function( '', 'return "text/html";' ) ); add_filter( 'wp_mail_from', 'acme_mail_from' ); add_filter( 'wp_mail_from_name', 'acme_mail_from_name' ); wp_mail( $input['email-address'], 'Your Acme Account Has Been Created!', $message, array() ); } function acme_mail_from( $email ) { // NOTE: replace [at] with @. This was causing problems with the syntax highlighter. return 'donotreply[at]acme.com'; } function acme_mail_from_name( $name ) { return 'The Acme Company'; }
Wenn Sie diesen Artikel bisher gelesen haben, ist das alles nicht allzu überraschend: Schließlich nutzen wir von WordPress bereitgestellte Hooks, erstellen Strings, die als Funktionsargumente übergeben werden, und rufen dann das wp_mail
auf Funktion.
Bitte beachten Sie jedoch, dass wir ein leeres Array als $headers
Parameter dieser E-Mail übergeben. Dies liegt daran, dass wir benutzerdefinierte Filter verwenden, um „Absendername“ und „Absenderadresse“ festzulegen, wobei wir Filter und Hook-Funktionen anstelle von Arrays verwenden.
Dieser Weg ist nicht unbedingt besser als andere; er soll jedoch zeigen, dass es mehrere Möglichkeiten gibt, das gleiche Ergebnis zu erzielen.
Dies ist eine weitere Funktion von WordPress, mit der Sie ganz einfach E-Mail-Funktionen in Ihre Webanwendung integrieren können.
Tatsächlich denke ich, dass das Ereignismodell von WordPress es unglaublich einfach macht, E-Mail-Funktionen in jedem erdenklichen Szenario einzuführen – wenn ein Hook verfügbar ist, können Sie einfach eine E-Mail senden.
Vor diesem Hintergrund ist es an der Zeit, unsere Aufmerksamkeit auf einen der häufigsten Aspekte der Webanwendungsentwicklung zu richten: das Datenmanagement.
Konkret müssen wir uns damit befassen, wie wir Informationen in der Datenbank speichern und Informationen aus den Daten abrufen und wie wir diese Vorgänge sicher und effizient durchführen können.
Ab dem nächsten Artikel werden wir genau das tun.
Das obige ist der detaillierte Inhalt vonWordPress für die Entwicklung von Webanwendungen: E-Mail-Integration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!