Geavanceerde E-mailsjablonen
Bird
25 mrt 2016
1 min read

Deze post is gericht aan de ontwikkelaar die het meeste uit de e-mailsjabloonmogelijkheden van SparkPost wil halen. Er wordt aangenomen dat je vertrouwd bent met het lezen van JSON-inhoud en het volgen van de basisprogrammaflow. Wanneer er termen worden geïntroduceerd die mogelijk nieuw voor je zijn, zoals RFC 5322, is de tekst gekoppeld aan de bronreferentie.
Dit bericht is gericht aan de ontwikkelaar die het meeste uit de e-mailtemplate mogelijkheden van SparkPost wil halen. Er wordt verondersteld dat u comfortabel bent met het lezen van JSON-inhoud en het volgen van basis programmeerlogica. Als termen die misschien nieuw voor u zijn worden geïntroduceerd zoals RFC 5322, is de tekst gekoppeld aan de bronreferentie. Nu dat uit de weg is, laten we er meteen induiken.
De template en transmissiemogelijkheden van SparkPost maken het verzenden van e-mails eenvoudig. Die mogelijkheden bieden een abstractie voor tekst en HTML inhoud, wat betekent dat er meestal geen directe codering van het onbewerkte e-mailformaat nodig is zoals dat is gedefinieerd in RFC 5322 voorheen bekend als (RFC 822). Maar soms wilt u wellicht complexere berichten maken die andere multipurpose Internet Mail Extensions (MIME) onderdelen hebben die niet direct via de RESTful interface van SparkPost beschikbaar zijn.
Vereenvoudigde E-mailopstelling
Laten we eerst een scenario op een zonnige dag voor het verzenden van een e-mail bekijken. Gebruik het transmission eindpunt om de tekst en HTML inhoud te leveren. Achter de schermen zorgt SparkPost ervoor dat er een geldige RFC 5322 e-mail wordt samengesteld. SparkPost zal vervangingsvariabelen uit substitution_data invoegen in de tekst- en HTML-inhoud. Dit is een krachtige manier om aangepaste inhoud voor elke ontvanger te genereren in een gemeenschappelijk sjabloon.
Hier is een voorbeeld van transmission met HTML- en tekstinhoud met substitution_data.
Substitutie van Gegevensarrays
Veel mensen realiseren zich dat de transmission en template eindpunten van SparkPost eenvoudige inhouds substitutie kunnen doen in e-mailheaders en e-maillichamen. Maar velen overzien de mogelijkheid om voorwaardelijke inhoud of gegevensarrays aan te bieden die ook kunnen worden vervangen. U kunt ook unieke inhoud per ontvanger aanbieden. In dit voorbeeld sturen we een array van unieke links naar elke ontvanger.
Dit wordt bereikt door een JSON-array van gegevens te verstrekken die in het e-maillichaam worden geplaatst. Zodra de gegevens zijn verstrekt zal SparkPost logica in de template gebruiken om het te vullen.
In dit voorbeeld zal SparkPost zoeken naar substitutiedata genaamd "files_html” en een “voor elk” uitvoeren op elk element in de array. Het zal een rij maken met de waarde van “bestand” in het “files_html” element. Noteer de driedubbele krullen rond “loop_var.file“. Dit komt omdat elk element van de array HTML bevat en we de server moeten vertellen om het zo te gebruiken en niet te ontsnappen. Het tekstgedeelte zal een eenvoudig tekstlabel en de URL naar het bestand zijn.
Hier is het voltooide werkende voorbeeld:
Pro Tip: In uw code wordt geadviseerd om de weergave opmaak gescheiden van de gegevens te houden, maar het doel hier was om het voorbeeld zo eenvoudig en gemakkelijk te volgen mogelijk te maken, dus hebben we twee arrays gemaakt. Eén array is voor het HTML-gedeelte en de andere is voor het tekstgedeelte. In productieomgevingen is het gebruikelijk om één dataset te hebben en de logica in de templatecode te schrijven.
Bijlagen in Transmissiemogelijkheden
Het transmission eindpunt biedt ook een abstractie voor het verzenden van bijlagen. Hieronder ziet u dat bijlagen worden gespecificeerd in de content.attachments array waar elk object in de array een afzonderlijk bijlage-item beschrijft. Net zoals voorheen zal SparkPost zorgen voor de codering van tekst, HTML, vervangingen en door de bijlage-array itereren om een correct gevormd e-mailbericht te coderen.
Beste praktijken dicteren dat het verzenden van bijlagen het beste vermeden kan worden tenzij expliciet vereist als onderdeel van uw service.
Hieronder staan de vereiste velden voor een bijlage:
type: Het MIME-type van de bijlage
name: De bestandsnaam van de bijlage
data: Base64-gecodeerde bestandsgegevens
Dit is hoe een bijlage er uitziet binnen de transmissiecontent stanza:
U kunt ook “inline beelden” verzenden in een transmission. Deze zijn zeer vergelijkbaar met bijlagen en worden gespecificeerd in de content.inline_images array waar elk van de inline_image objecten vergelijkbaar zijn met het hierboven getoonde bijlage-object.
Bijlagen in Sjablonen
Nu we de juiste achtergrond hebben voor het verzenden van bijlagen met het transmission eindpunt, laten we eens kijken hoe we dit met sjablonen kunnen doen. Op het moment van schrijven is er geen abstractie voor bijlagen zoals u die vindt voor inline transmissies. Men kan concluderen dat sjablonen niet met bijlagen kunnen worden gemaakt. Dit zou gedeeltelijk correct zijn maar er is een omweg, hoewel u niet langer geïsoleerd bent van het RFC 5322-formaat.
U kunt bijlagen in sjablonen bereiken door zelf RFC 5322 inhoud te coderen inclusief de bijlagen. Het goede nieuws is dat u het vermogen om nog steeds Substitution Data te gebruiken in uw e-mailheaders, HTML en tekst delen niet verliest. Wees u ervan bewust dat dit type sjabloon de substituties beperkt tot de headers en het eerste HTML en eerste tekst deel.
Hier is een voorbeeld van hoe het gedaan wordt.
RFC822 E-mail
Maak uw RFC 5322 e-mail met de gewenste substitutiedata. Ik heb deze in mijn mailclient gemaakt en naar mezelf verzonden. Zodra ik het ontving kopieerde ik de bron en verving de velden die ik dynamisch wil vervangen.
Het laatste MIME-deel van dit bericht ziet u Content-Disposition: attachment; filename=myfile.txt”. Dat is waar de naam van het bestand wordt gedefinieerd. Uw bijlageninhoud zal vrijwel zeker veel complexer zijn, maar dit voorbeeld probeert het eenvoudig te houden.
Opgeslagen Sjabloon
Zodra u een geldige RFC 5322 e-mail hebt, sla die op gebruikmakend van de email_rfc822 vorm van het sjabloon eindpunt in plaats van de tekst en HTML velden. Hier is een voorbeeld van hoe de inhoud voor dat bericht eruitziet:
Wanneer het verzoek is voltooid, zal SparkPost reageren met een unieke identificatie voor uw nieuwe sjabloon. Bijvoorbeeld xxxxxxx.
Het Verzenden van het Sjabloon
Het goede nieuws is dat het creëren van de RFC 5322-inhoud het moeilijke deel was. Vanaf hier is het verzenden van dat sjabloon met SparkPost precies hetzelfde als het verzenden van elk ander sjabloon.
Hier is hoe we dat sjabloon verzenden en de substitutiedata invullen:
Sjablonen van een E-mail Client’s API
Als u een programmeertaal gebruikt die een bibliotheek voor het samenstellen van een e-mail heeft, kunt u dat gebruiken om het sjabloon programmatisch te maken of zelfs de boodschap inline te verzenden. Hier is een voorbeeld van het gebruik van JavaMail via het transmissie-eindpunt van SparkPost. Deze methode zou eenvoudig vertaald kunnen worden naar PHP of uw taal naar keuze.
Conclusie
Nu u ziet hoe SparkPost kan worden gebruikt om e-mails van bijna elke complexiteit te verzenden, wilt u wellicht eens kijken naar “SparkPost Ondersteunt Het Verzenden van E-mail naar Apple Watch” of kijkt u naar de substitutiesyntaxis om te zien hoe het kan worden gebruikt met "als dan anders", "expressies in voorwaardelijke zinnen" of "array-iteratie" direct in uw sjabloon of transmissie-inhoud.



