WordPress för webbapplikationsutveckling e-post

En av huvudkomponenterna i varje webbapplikation är dess förmåga att skicka email.

Nu betyder det inte att varje webbapplikation är sin egen e-postklient (även om människor verkligen skapar egna).

Istället menar jag att applikationer normalt skickar e-postmeddelanden när en användare registrerar sig, en användare ändrar sitt lösenord, när något i systemet ändras eller - mer allmänt - närhelst något inträffar för vilket webbplatsägare vill meddela användarna.

Hittills i denna serie har vi täckt:

  • Användarhantering
  • Behörigheter
  • Session Management

Den sista artikeln var förmodligen en av de mest komplicerade som vi kommer att täcka; Det är dock nödvändigt för dig som vill lägga till mer avancerad funktionalitet för dina projekt.

Med det sagt kommer vi ta en paus från något av det mer komplicerade materialet och ta en titt och vad WordPress har att erbjuda så långt som att skicka e-post är oroad.


Förstå e-post

Innan vi dyker in i vad WordPress API erbjuder för att skicka e-postmeddelanden, anpassa e-postmeddelanden och liknande, är det viktigt att förstå ett par saker om e-post.

Namnlösa: Det är nämligen viktigt att förstå de komponenter som går till att skapa ett verkligt e-postmeddelande. Det är trots allt mer än bara en adress, ett ämne och ett innehåll.

Det finns några tekniska nyanser som är värda att förstå innan vi går på att bygga våra egna e-postmeddelanden.

rubriker

Kortfattat innehåller e-postrubriker en minsta uppsättning information inklusive: från vem e-postmeddelandet skickas och adresserna till vilka e-postmeddelandet skickas.

Vanligtvis ser du sannolikt ytterligare information i huvudet. Till exempel kan denna information innehålla en tidsstämpel för när e-postmeddelandet skickas.

När det gäller WordPress, är avsändaren som anges i e-postrubriken alltid definierad som standard avsändare i WordPress, om inte annat anges.

Om du till exempel vill ange svaradressen som "[email protected]", då är det något du måste anpassa.

Dessutom är det vanligtvis en bra idé att arbeta med e-posthuvud i form av en matris så att du enkelt kan konstruera, ange och vidarebefordra till adresser, kolkopieadresser och blinda kol kopi mottagare.

MIME-typ

När det gäller det format som e-postmeddelanden följer kommer du sannolikt att se två former:

  • Oformatterad text
  • html

Du är van att se HTML i de flesta moderna e-postklienter; Om du har en mer förenklad klient, har du det bara att visa vanlig text, eller om du läser e-post på en lite äldre telefon så läser du innehållet i vanlig text.

WordPress gör det möjligt att skicka e-postmeddelanden i antingen vanlig text eller HTML.

När vi tittar på ett exempel på hur man skickar ett e-postprogrammatiskt, tar vi en titt på exakt hur man gör det. Kort sagt, det finns en krok som gör det väldigt lätt - men vi väntar på att se det i funktion tills vi täcker resten av nödvändiga delar av ett mail.

bilagor

Som du vet är bilagor praktiskt taget alla filer som du har bifogat till ett e-postmeddelande och som du skickar till en mottagare.

Saken är, det finns några regler som reglerar e-post, men de är inte nödvändigtvis inställda av programvaran. Istället begränsar servrar, e-postklienter och andra olika regler vad vi kan få i vår inkorg.

Till exempel:

  • Vissa klienter tillåter inte zip-filer eller exekverbara filer att skickas
  • Många e-posttjänster har en maximal filstorlek som kan bifogas
  • Vissa typer av e-post kan flaggas som skräppost baserat på deras bifogade filer (eller deras innehåll)

Oavsett det som ligger utanför vår kontroll - vi behöver bara veta begränsningarna för vem vi skickar e-post till och se till att vi stannar inom dem.

För det ändamålet är det verkligen enkelt att skapa bilagor för att skicka med WordPress-e-post.

Även om bilagor är uppenbarligen inte nödvändiga, kanske du vill bifoga en enda fil eller till och med flera filer. I WordPress kan detta göras med antingen en sträng eller en array.

Vi ska inte titta på exakt hur man gör det just nu, men vi kommer ta det tillfället när vi tittar på ett exempel på hur du skickar ett mailprogrammatiskt.

Till, Ämne och Meddelande

På den mest grundläggande nivån består varje e-post av en "Till"e-postadress, en"Ämne"och en"Meddelande".

I WordPress är dessa också enkla att ställa in - bara ge strängar för varje och du är redo att gå.

Självklart, om du vill skicka ett mail till flera personer kan du antingen iterera genom en samling adresser och skicka ett e-postmeddelande per användare, eller Du kan tillhandahålla en rad mottagare till WordPress Mail API och det skickar e-postmeddelandet till alla som ingår.

Och kom ihåg: Om du vill ange en annan svara till adress, som går in i rubrikerna som vi behandlade tidigare i artikeln.


Använda WordPress Email API

Så med allt det sagt, är vi redo att faktiskt ta en titt på WordPress Email API.

Kortfattat är all funktionalitet invecklad i en kallad funktion wp_mail; dock där är några krokar som vi måste vara medvetna om vi vill dra full nytta av ansökans erbjudande.

De obligatoriska krokarna

Specifikt kommer vi att använda följande krokar:

  • wp_mail_content_type tillåter oss att definiera MIME-typen av e-postmeddelandet som skickas
  • wp_mail_from är ett filter som vi kan använda för att definiera adress från, istället för att använda $ headers array
  • wp_mail_from_name är ett filter som vi kan använda för att definiera personens från, snarare än att använda $ headers array
  • wp_login är den krok som vi ska använda för demonstration så att vi skickar e-postmeddelanden till en person när en person loggar in i WordPress instrumentbräda

För fullständighetens skull delar jag hela koden nedan och sedan går vi igenom den.

Källkoden


'; $ message. = 'Ditt konto har skapats. Din inloggningsinformation är nedan: '; $ message. = '
'; $ message. = '
    '; $ message. = '
  • Användarnamn: ' . $ input ['email-adress']. '
  • '; $ message. = '
  • Lösenord: ' . $ lösenord. '
  • '; $ message. = '
'; $ message. = '
'; $ message. = 'Du kan logga in till programmet här.'; add_filter ('wp_mail_content_type', create_function ("," returnera text / html ";")); add_filter ('wp_mail_from', 'acme_mail_from'); add_filter ('wp_mail_from_name', 'acme_mail_from_name'); wp_mail ($ input [' e-postadress "]," Ditt acme-konto har skapats! ", $ meddelande, array ()); funktion acme_mail_from ($ email) // OBS: ersätt [vid] med @. Detta orsakade problem med syntaxen highlighter. returnera 'donotreply [at] acme.com'; funktion acme_mail_from_name ($ name) returnera 'The Acme Company';

Om du har följt med den här artikeln så här långt, så skulle inget av det här vara oerhört förvånande. Vi utnyttjar trots allt de krokar som WordPress ger, vi bygger strängar för att passera som funktionsargument och sedan vi ringer till wp_mail fungera.

Observera dock att vi är skickar en tom array som $ headers argument för detta email. Detta beror på att vi använder ett anpassat filter för att ställa in "Från namn" och den "Från adress"använder ett filter och en ansluten funktion i stället för en array.

Detta sätt är inte nödvändigtvis bättre än alternativet; Det är dock meningen att det finns flera sätt att uppnå samma resultat.


Och nu vidare till data!

Så det här är ännu en funktion i WordPress som gör det väldigt enkelt att inkludera e-postfunktionalitet i din webbapplikation.

I själva verket tycker jag att WordPress 'eventing-modell gör det löjligt enkelt att presentera e-postfunktionalitet för nästan alla tänkbara scenarier - om det finns en krok tillgänglig för det, kan ett mail skickas.

Med det sagt är det dags att göra vår uppmärksamhet till en av de vanligaste aspekterna av webbapplikationsutveckling: datahantering.

Specifikt måste vi titta på hur information kan sparas i databasen och hämtas från data och hur det kan ske så säkert och effektivt.

Så börjar vi i nästa artikel, så gör vi exakt det.