WordPress voor Web App Development e-mail

Een van de belangrijkste componenten van elke webapplicatie is de mogelijkheid om e-mail te verzenden.

Dit betekent niet dat elke webtoepassing zijn eigen e-mailclient is (hoewel mensen er wel degelijk een maken).

In plaats daarvan bedoel ik dat applicaties normaal e-mails verzenden wanneer een gebruiker zich aanmeldt, een gebruiker zijn wachtwoord wijzigt, wanneer iets in het systeem verandert, of - meer in het algemeen - wanneer er iets gebeurt waarvoor de site-eigenaren de gebruikers willen informeren.

Tot nu toe in deze serie hebben we het volgende behandeld:

  • Gebruikersbeheer
  • machtigingen
  • Sessiebeheer

Het laatste artikel was misschien wel een van de meest ingewikkelde die we zullen behandelen; het is echter noodzakelijk dat diegenen van u meer geavanceerde functionaliteit aan uw projecten willen toevoegen.

Met dat gezegd, zullen we een pauze nemen van een aantal ingewikkelder materiaal en een kijkje nemen en wat WordPress te bieden heeft wat betreft het verzenden van e-mails.


E-mail begrijpen

Voordat we ingaan op wat de WordPress API biedt op het gebied van het verzenden van e-mails, het aanpassen van e-mails en dergelijke, is het belangrijk om een ​​aantal dingen over e-mail te begrijpen.

Het is namelijk belangrijk om de componenten te begrijpen die bij het maken van een echte e-mail horen - het is tenslotte meer dan alleen een adres, onderwerp en inhoud.

Er zijn enkele technische nuances die de moeite van het begrijpen waard zijn voordat we onze eigen aangepaste e-mails gaan maken.

headers

Kortom, e-mailheaders bevatten een minimum aan informatie, waaronder: van wie de e-mail wordt verzonden en de adressen waarnaar de e-mail wordt verzonden.

Doorgaans ziet u waarschijnlijk extra informatie in de koptekst. Deze informatie kan bijvoorbeeld een tijdstempel bevatten voor wanneer de e-mail wordt verzonden.

Als het om WordPress gaat, wordt de afzender die in de e-mailheader is gespecificeerd altijd gedefinieerd als de standaard afzender in WordPress, tenzij anders aangegeven.

Als u bijvoorbeeld het antwoordadres wilt instellen als "[email protected]", dan is dit iets dat u moet aanpassen.

Bovendien is het meestal een goed idee om met e-mailheaders in de vorm van een array te werken, zodat u gemakkelijk adressen, adressen van carbon copy's en ontvangers van blinde carbon copy's kunt samenstellen, specificeren en doorgeven.

Mime type

Als het gaat om het formaat dat e-mails volgen, ziet u waarschijnlijk twee vormen:

  • Platte tekst
  • HTML

U bent gewend om HTML te zien in de meeste moderne e-mailclients; als je echter een meer simplistische client hebt, heb je deze ingesteld om alleen platte tekst weer te geven, of lees je e-mail op een iets oudere telefoon, dan zul je de inhoud in platte tekst lezen.

WordPress maakt het mogelijk om e-mails te verzenden in platte tekst of HTML.

Als we een voorbeeld bekijken van het programmeren van een e-mail, bekijken we precies hoe dat moet. Kortom, er is een haak die het heel gemakkelijk maakt - maar we wachten tot hij in actie komt totdat we de rest van de benodigde delen van een e-mail hebben behandeld.

Bijlagen

Zoals u weet, zijn bijlagen praktisch elk bestand dat u hebt bijgevoegd bij een e-mail en dat u naar een ontvanger verzendt.

Het punt is, er zijn een aantal regels voor e-mail - ze worden echter niet noodzakelijk door de software ingesteld. In plaats daarvan beperken servers, e-mailclients en andere verschillende regels wat we kunnen ontvangen in onze inbox.

Bijvoorbeeld:

  • Sommige clients staan ​​niet toe dat zip-bestanden of uitvoerbare bestanden worden verzonden
  • Veel e-maildiensten hebben een maximale bestandsgrootte die kan worden bijgevoegd
  • Bepaalde soorten e-mail kunnen worden gemarkeerd als spam op basis van hun bijlagen (of de inhoud ervan)

Ongeacht, dat valt buiten onze controle - we moeten alleen de beperkingen weten van naar wie we e-mail sturen en om ervoor te zorgen dat we erin blijven.

Daarom is het maken van bijlagen om met WordPress-e-mails te verzenden heel eenvoudig.

Hoewel bijlagen natuurlijk niet vereist zijn, wilt u misschien een enkel bestand of zelfs meerdere bestanden bijvoegen. In WordPress kan dit met een string of een array worden gedaan.

We zullen nu niet kijken hoe we dat precies moeten doen, maar wij zullen kom daar nu even op als we een voorbeeld bekijken van hoe je een e-mail programmatisch kunt verzenden.

Naar, Onderwerp en Bericht

Op het meest eenvoudige niveau bestaat elke e-mail uit een "Naar"e-mailadres, een"Onderwerpen", en een "Bericht".

In WordPress zijn deze ook heel eenvoudig in te stellen - je hoeft alleen maar strings voor elk te geven en je bent klaar om te gaan.

Als u een e-mail naar meerdere mensen wilt sturen, kunt u natuurlijk een verzameling adressen doorlopen en één e-mail per gebruiker verzenden, of u kunt een reeks ontvangers aan de WordPress Mail API verstrekken en deze stuurt de e-mail naar al degenen die zijn opgenomen.

En onthoud: als u een andere wilt opgeven antwoord aan adres, dat past in de headers die we eerder in het artikel hebben behandeld.


De WordPress Email API gebruiken

Dus met dat alles gezegd, zijn we klaar om daadwerkelijk de WordPress Email API te bekijken.

Kortom, alle functionaliteit is verpakt in een functie genaamd wp_mail; echter, daar zijn een paar haken waarvan we ons bewust moeten zijn als we het aanbod van de applicatie ten volle willen benutten.

De vereiste haken

Concreet gaan we de volgende haken gebruiken:

  • wp_mail_content_type stelt ons in staat om het MIME-type van de e-mail die wordt verzonden te definiëren
  • wp_mail_from is een filter dat we kunnen gebruiken om het van-adres te definiëren, in plaats van het te gebruiken $ headers rangschikking
  • wp_mail_from_name is een filter dat we kunnen gebruiken om de persoon van te definiëren in plaats van het te gebruiken $ headers rangschikking
  • wp_login is de haak die we zullen gebruiken voor demonstratie, zodat we e-mails naar een persoon sturen telkens wanneer iemand inlogt op het WordPress-dashboard

Voor de volledigheid zal ik de hele code hieronder delen en dan zullen we er doorheen lopen.

De broncode


'; $ message. = 'Uw account is aangemaakt. Uw inloggegevens staan ​​hieronder: '; $ bericht. = '
'; $ bericht. = '
    '; $ bericht. = '
  • Gebruikersnaam: '. $ input ['email-address']. '
  • '; $ bericht. = '
  • Wachtwoord: '. $ wachtwoord. '
  • '; $ bericht. = '
'; $ bericht. = '
'; $ message. = 'Hier kun je inloggen op de applicatie.'; 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-adres '],' Uw Acme-account is aangemaakt! ', $ message, array ()); function acme_mail_from ($ email) // OPMERKING: vervang [at] door @. Dit veroorzaakte problemen met de syntaxis markeerstift. return 'donotreply [at] acme.com'; functie acme_mail_from_name ($ name) terug 'The Acme Company';

Als je tot nu toe dit artikel hebt gevolgd, zou dit allemaal niet zo verrassend mogen zijn: we maken tenslotte gebruik van de haken die WordPress biedt, we bouwen strings om door te geven als functieargumenten en vervolgens we noemen het wp_mail functie.

Merk echter op dat wij zijn een lege array doorgeven als de $ headers argument voor deze e-mail. Dit komt omdat we een aangepast filter gebruiken om de "Van naam" en de "Van adres"met behulp van een filter en een gekoppelde functie in plaats van een array.

Deze manier is niet noodzakelijkerwijs beter dan het alternatief; het is echter bedoeld om aan te tonen dat er meerdere manieren zijn om hetzelfde resultaat te bereiken.


En nu, op gegevens!

Dit is dus nog een ander kenmerk van WordPress dat het heel gemakkelijk maakt om e-mailfunctionaliteit op te nemen in uw webapplicatie.

Ik denk zelfs dat WordPress 'eventing-model het belachelijk gemakkelijk maakt om e-mailfunctionaliteit te introduceren voor bijna elk denkbaar scenario - als er een haak voor beschikbaar is, kan een e-mail worden verzonden.

Met dat gezegd, is het tijd om onze aandacht te richten op een van de meest voorkomende aspecten van de ontwikkeling van webapplicaties: gegevensbeheer.

In het bijzonder moeten we kijken hoe informatie kan worden opgeslagen in de database en kan worden opgehaald uit de gegevens, en hoe het zo veilig en efficiënt kan worden gedaan..

Dus vanaf het volgende artikel zullen we precies dat doen.