2016-12-20 3 views
0

Ich habe eine Sendgrid-Vorlage erstellt, um meine E-Mails nach Benutzerinformationen zu erstellen. Inzwischen ist es wirklich straightsorward:SendGrid: Vorlagen und Ersatz-Tags

<html> 
<body> 
    <div>&lt;%body%&gt;</div> 
    <div>Hi there&nbsp;:username!</div> 
    <div>Please, click on here to complete Accoung Activation: :activation</div> 
    <div>Please, bear with us.</div> 
</body> 
</html> 

Was habe ich gewesen, um herauszufinden, ich bin in der Lage Token zu ersetzen (:username und :activation).

Dennoch verstehe ich nicht ganz, wie man es auf Java baut. Bis jetzt konnte ich diesen Code schreiben, um eine E-Mail mit einer Vorlage zu senden:

String activationUri = "http://activation uri.sample.com/activation"; 
String address = "[email protected]"; 

Email from = new Email("[email protected]"); 
String subject = "Account activation mail request"; 
Email to = new Email(address); 
Content content = new Content("text/plain", activationUri); 
Mail mail = new Mail(from, subject, to, content); 
mail.setTemplateId("7928c2b2-c5a9-4918-a035-db5b7aae532b"); 

SendGrid sg = new SendGrid("api_key"); 
Request request = new Request(); 
try { 
    request.method = Method.POST; 
    request.endpoint = "mail/send"; 
    request.body = mail.build(); 

    Response response = sg.api(request); 
} catch (IOException ex) { 
    throw MailGenerationException.create(address, ex); 
} 

Wie Sie sehen können ich habe die templateId, doch, ich bin nicht in der Lage zu bekommen Anleitung:

  1. Vorlagenversion einstellen.
  2. Fügen Sie Tokensubstitutionen hinzu.

von anderen:

  1. Was ist der Unterschied zwischen section tags und substitution tags und <%subject%> und <%body%>-Tags?

Bitte, ich habe mir wirklich die Dokumentation angesehen. Bis jetzt konnte ich nicht alles verstehen, was ich gestellt habe.

+0

Hier sind auch einige Beispiele: [sendgrid-java] (https://github.com/sendgrid/sendgrid-java/tree/master/examples) – Skaparate

Antwort

0

Ich wollte etwas ähnliches machen, aber ich konnte keinen Weg finden, es mit einer Anfrage zu machen.

Die Vorlage, die verwendet wird, ist immer die "aktive". Um also eine andere Version zu wählen, müssen Sie zuerst den Endpunkt der Vorlagen/Versionen aufrufen und ihn "aktivieren".

Angenommen, Sie sind mit der API-Version 3, dann würden Sie somethins wie folgt tun (vor die E-Mail tatsächlich gesendet wird):

Request request = new Request(); 
try { 
    request.method = Method.PATCH; 
    request.endpoint = "templates/" + templateId + "/versions/" + versionId; 
    request.body = "{\"active\": \"1\"}"; 

    Response response = sg.api(request); 
    if (response.status == 200) 
    // success 
    else 
    // failure 
} catch (IOException ex) { 
    throw MailGenerationException.create(address, ex); 
} 

Um die Liste der Template-Versionen abzurufen, müssen Sie die templates endpoint anrufen ... dann wird die Verwendung einer Version ein wenig langweilig xD.

Für die Substitutionen, müssen Sie eine Personalisierung Objekt bauen:

Personalization obj = new Pesrsonalization(); 
obj.addSubstitution("tag", "value"); 
// Etc. 

Die Personalisierung Klasse sind sehr nützlich, da sie den Empfänger aufnehmen können (CC, BCC und TO) und andere Daten.

Das <% Körper%>-Tag wird von was auch immer Sie senden im mail.body ersetzt und das <% Thema%> wird durch das Thema Satz im Personalisierung Objekt (oder die mail.subject ersetzt). Der einzige Unterschied zu anderen Tags besteht darin, dass diese nicht über das Personalisierungsobjekt festgelegt werden müssen.

Übrigens kann das Thema andere Tags enthalten, die auch ersetzt werden.

Hoffe das hilft dir.