Describe the steps to get to MintMailingModule

main
Shad Amethyst 2 years ago
parent 589db06671
commit 6db94e4cb4

@ -46,8 +46,16 @@
}
@misc{amazonses,
author={Amazon Simple Email Service}
author={Amazon Simple Email Service},
howpublished="\url{https://aws.amazon.com/fr/ses/}",
year=2023,
note="[En ligne; accédé le 02 Février 2023]"
}
@inproceedings{amazonsestemplate,
author={Amazon Web Services},
title={Using templates to send personalized email with the Amazon SES API},
booktitle={Amazon Simple Email Service - Developer Guide},
howpublished="\url{https://docs.aws.amazon.com/ses/latest/dg/send-personalized-email-api.html}",
pages={85--94},
note="[En ligne; accédé le 04 Février 2023]"
}

@ -88,10 +88,10 @@
\newfontfamily{\SourceSans}{Source Sans Pro}
% Looks like the font from google fonts has a different case,
% so I'm stuck with scanning for existing fonts
\IfFontExistsTF{Source Sans Semibold}{
\IfFontExistsTF{Source Sans Pro Semibold}{
\newfontfamily{\SourceSansSB}[UprightFont={* Semibold}]{Source Sans Pro}
}{
\newfontfamily{\SourceSansSB}[UprightFont={* SemiBold}]{Source Sans Pro}
\newfontfamily{\SourceSansSB}[UprightFont={* Semi-Bold}]{Source Sans Pro}
}
\setmainfont{Source Sans Pro}
% \newfontfamily{\ossb}[UprightFont={* Semibold}]{Open Sans}
@ -418,8 +418,38 @@ placés dans la version texte du mail. [Figures~\ref{hbs2a} et \ref{hbs2b}]
Une fois que le prototype me donnait des résultats satisfaisants,
j'ai pu passer à l'implémentation au propre du système d'envoi de mails dans \entity{Mint Service}.
Cette première implémentation devait faire l'envoi de mail en deux étapes:
J'ai d'abords créé et implémenté une librairie permettant de compiler
\begin{enumerate}
\item Les mails sont chargés et sont rendus, puis sont mises en lignes sur \entity{Amazon SES} en tant que \og templates \fg \cite{amazonsestemplate}
\item Les mails sont ensuite envoyés en instructant à \entity{Amazon SES} de faire le rendu et l'envoi d'une des \term{templates} à l'adresse mail voulue, avec les données voulues
\end{enumerate}
J'ai d'abords créé et implémenté une librairie permettant de compiler du code \entity{Handlebars}
ainsi que des composants en format HTML et en format texte, nommée \texttt{handlebars-generator}. Cette librairie ne s'occupe pas du
chargement des fichiers, ni de l'envoi des mails, et est implémentée sans framework,
ce qui permet de la réutiliser dans le futur pour d'autres projets.
Puis, j'ai créé et implémenté une librairie Nest.JS nommée \texttt{mailing-nest} qui s'occupe de:
\begin{itemize}
\item Charger les composants et les emails depuis un dossier donné
\item Transformer ceux-cis avec \texttt{handlebars-generator} en HTML et en texte
\item Mettre en ligne des \term{templates} pour utiliser le service d'envoi d'emails personalisés d'\entity{Amazon}
\item Envoyer les \term{templates} avec les informations de l'utilisateur dedans
\end{itemize}
Afin de pouvoir tester le fonctionnement de la librairie \texttt{mailing-nest},
j'ai également créé une petite application Nest.JS qui affiche dans le navigateur les emails en format HTML et en format texte.
Cette application permet aussi de développer rapidement les emails sans devoir passer par Amazon pour tester
les modifications.
% TODO: screenshots
Enfin, j'ai implémenté un module Nest.JS dans l'application \entity{Mint Service},
qui charge le module de \texttt{mailing-nest} avec en paramètre le chemin des emails pour \entity{Mint}.
Ce module est importé à plusieurs endroits dans le code, et expose des méthodes dans son service permettant
de convertir les entités de \entity{Mint Service} au format attendu par les emails.
\begin{figure}[H]
\includegraphics[width=\textwidth]{mailingnest}

Loading…
Cancel
Save