Création d'un service de mailing

a marqué ce sujet comme résolu.

Salut tout le monde,

Dans le cadre d’un projet, je souhaite créer un système de mailing tel que mailjet ou encore mailchimp,

alors vu que c’est ma première fois de bosser sur ce genre de projet, j’aimerai savoir, quels sont les enjeux;

par exemple dites moi:

  • quel technologie dois-je utiliser ?
  • est-ce obligatoire d’avoir un serveur privé
  • quels sont les détails à prendre en compte ?
  • etc,…

NB: je suis développeur full-stack

Merci d’avance pour vos réponses et orientations

Détail important, les mails sont souvent flag comme spam s’ils ne proviennent pas d’une ip "connue", donc il faut héberger ton serveur chez un gros fournisseur pour que tes mails ne finissent pas dans le spam, une solution hébergée à la maison aura plus de chance de finir dans le spam des boites gmail par exemple.

Niveau techno tu es assez libre, il y a un exemple ici en rust avec le minimum de fonctionnalité, (toujours en cours d’écriture)

si tu as une deadline, part sur une technologie où tu es à l’aise.
Sinon teste quelque chose de nouveau ?

+0 -0

Il y a deux parties :

  • le système de gestion des adresses emails et de ce que tu dois leur envoyer ;
  • l’envoi d’emails en tant que tel.

La première partie, c’est souvent un backend adossé à une base de données contenant les adresses email ainsi que certaines données associées. Ces données permettent de filtrer correctement pour orchestrer les envois. Par exemple, tu vas sûrement vouloir associer une adresse email à une date d’inscription à ta newsletter. De cette façon, ton système peut filtrer et sélectionner les bonnes adresses auxquelles il faut envoyer l’email de bienvenue et de remerciement (par exemple). Tu peux aussi vouloir connaître le prénom de des inscrits, de façon à faire un email un peu plus personnalisé qui commence par « Salut [prénom] ».

Tout dépend du niveau de complexité que tu veux, mais au minimum c’est une base de données avec les adresses email et quelques infos associées, ainsi qu’une petite app Web qui permet à tes futurs abonnés de s’inscrire en renseignant leur email via un formulaire simple. Sans doute faudra-t-il aussi quelques script pour automatiser certains emails, et un moyen simple (pour toi) de déclencher l’envoi des emails dès que tu en as un nouveau à envoyer à tout le monde.

Pour la seconde partie, l’envoi des emails, tu as deux solutions :

  • gérer toi-même le serveur d’email (un serveur SMTP configuré correctement) ;
  • sous-traiter ça (conseillé).

quel technologie dois-je utiliser ?

Ce que tu veux. Tu es développeur full-stack, donc tu connais déjà sûrement tes outils de prédilection. Tu peux sans doute t’en servir.

est-ce obligatoire d’avoir un serveur privé

Non, tu peux sous-traiter la partie envoi à des services spécialisés (AWS SES, Mailgun, …). C’est ce que je te conseillerais, dans un premier temps. Même si tu veux, un jour, disposer de tes propres serveurs d’envoi, ton code ne changera pas nécessairement si tu le codes de façon évolutive : il suffira par exemple de mettre à jour les informations SMTP du serveur de sortie.

quels sont les détails à prendre en compte ?

Je dirais que les détails importants à prendre en compte ne sont pas tant techniques, mais administratifs et juridiques. Dès lors que tu as une base de données pleines d’adresses email en ta possession, tu dois te soumettre à certaines obligations selon la juridiction dont tu dépends. Je n’entre pas dans les détails car ce n’est pas mon domaine.

Je pense qu’au minimum, il faut suivre les bonnes pratiques, c’est-à-dire intégrer un lien de désinscription (et ton app Web backend doit le gérer correctement) et gérer les bounces pour désinscrire automatiquement les emails inactifs/inexistants (là encore, c’est ton système qui doit le gérer en monitorant les retours de code SMTP).

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte