2017-12-14 6 views
0

Ich baue eine sehr einfache Vorlage E-Mail-Service zum Senden von Benachrichtigungs-E-Mails. Ich diskutiere derzeit zwischen Amazon Simple Email Service für das Rendern von Templates oder den Aufbau meines eigenen Dienstes mit Apache Velocity, der über SMTP sendet. Was sind die Vor- und Nachteile von beiden?Amazon SES Vorlagen oder Apache Velocity

Amazon SES scheint HTML- und Nur-Text-Nachrichten zu unterstützen. Es unterstützt auch Vorlagen für die Betreffzeile der E-Mail. Die Dokumentation für die Vorlagensyntax scheint jedoch sehr schwer zu finden. Die Verwaltung der Vorlagen könnte schwieriger sein, da sie nur über ihre API, CLI oder Terraform bereitgestellt werden können.

Für die Implementierung von Velocity-Templates wäre ein wenig mehr Zeit erforderlich, aber die Templates würden in derselben implementierbaren Version wie der Code verwaltet und damit versioniert. Es könnte auch einfacher sein, wenn ich Vorlagen verwalten möchte, während der Dienst läuft, da ich sie in meinen eigenen Datenspeicher legen könnte.

Antwort

0

Ich habe das gleiche Dilema. Welchen Weg haben Sie gewählt? Was ist deine Erfahrung darüber?

Scheint eigene Vorlagenlösung mit benutzerdefiniertem Datenspeicher, wenn zukunftssicherer ist, wenn Sie jemals den E-Mail-Anbieter ändern müssen. Über die weise Auswahl des E-Mail-Anbieters, der Template-Funktionalität hat, könnte schneller auf den Markt gebracht werden.

Btw. Ich habe keine transaktionalen E-Mail-Anbieter gefunden, die mehrere linguale Vorlagen unterstützen, so dass Sie SendTemplatedEmail("[email protected]", "template_ID", "en-US"); Kennen Sie irgendwelche?

+0

Ich ging schließlich mit Velocity-Vorlagen und mit SES nur für den SMTP-Server. Ich habe die Art und Weise, wie Vorlagen in SES verwaltet wurden, nicht gemocht und konnte keine gute Dokumentation um ihre Vorlagensyntax finden. – masstroy

+0

Ich habe keine mehrsprachigen Vorlagen benötigt. Wenn Sie das gleiche Format beibehalten und nur die Saite ändern, können Sie das mit Velocity tun. Fügen Sie Ihre Übersetzungskarte grundsätzlich in den Kontext ein, damit Ihre Templates $ translements.get ($ wasingString) .get ($ language) 'haben können – masstroy