
contactez nous


Avez-vous déjà eu à envoyer des e-mails depuis votre application Rails ?
Votre réponse sera probablement oui. La plupart d'entre nous ont déjà traité à un moment ou à un autre de la difficulté d'envoyer des e-mails au format HTML à l'aide de Ruby on Rails. Certains CSS sont déjà reconnus, mais en général, nous finissons par écrire les vues avec le CSS en ligne (aïe !) , ce qui entraîne des fichiers volumineux et presque illisibles.
Quelles sont les options disponibles pour résoudre ce problème ? Après quelques recherches, j'ai trouvé quelques pierres précieuses Ruby qui ont été publiées récemment et qui peuvent vous aider à accomplir cette tâche : Roadie, Prémailer-RAILS, actionmailer_inline_css et inline_styles_mailer.
Ensuite, je vais passer en revue chacune d'elles et vous expliquer brièvement comment configurer et utiliser ces gemmes.
Roadie intègre automatiquement tous vos CSS en accordant une attention particulière aux sélecteurs. En outre, il réécrit tous les chemins relatifs en chemins absolus et respecte tous les styles en ligne que vous pourriez avoir. De plus, il ajoute le squelette HTML et est capable d'utiliser des partiels.
Utilisation : ajoutez les éléments suivants à votre Gemfile :
Transformez des documents complets avec la méthode #transform.
Vous pouvez utiliser plusieurs options pour configurer votre instance de document (pour plus d'informations, consultez leur page d'accueil) :
• options_URL - Indique comment les URL absolues doivent être construites ;
• keep_uninlinable_css - Réglez sur false pour ignorer les CSS qui ne peuvent pas être intégrés ;
• merge_media_queries - Réglez sur False pour ne pas regrouper les requêtes multimédia. Certains utilisateurs peuvent préférer ne pas regrouper les règles dans les requêtes multimédia, car cela entraînerait une réorganisation des règles ;
• fournisseurs d'actifs - Une liste de fournisseurs de ressources qui sont invoqués lorsque des fichiers CSS sont référencés ;
• fournisseurs_d'actifs_externes - Une liste de fournisseurs de ressources qui sont invoqués lorsque des URL CSS absolues sont référencées ;
• avant_transformation - Une fonction de rappel exécutée avant le début de la transformation ;
• après_transformation - Un rappel est exécuté une fois la transformation terminée.
Roadie est extrêmement complet et propose plusieurs options utiles., mais à mon avis, cela peut être un peu trop complexe, selon ce dont vous avez besoin ou ce que vous voulez. Si vous devez utiliser les ressources d'un CDN ou utiliser le cache, cette gemme sera la meilleure option.
Tout comme Roadie, Prémailer-RAILS fait un excellent travail en convertissant votre CSS en styles intégrés. Vous n'avez pas besoin de Rails pour l'utiliser car il fonctionne bien avec Sinatra.
Premailer-RAILS est automatiquement utilisé par Actionmailer une fois que vous l'avez ajouté à votre Gemfile.
Utilisation : ajoutez les éléments suivants à votre Gemfile :
Le prémailer peut être configuré avec les options suivantes, vous pouvez le faire sur l'initialiseur (config/initializers/premailer_rails.rb) :
Pour empêcher Premailer de générer une partie de texte à partir du code HTML, définissez simplement generate_text_part sur false.
Si nécessaire, vous pouvez désactiver Premailer pour un certain e-mail, en définissant skip_premailer sur true, comme suit :
Ce que je pense de Premailer-RailsPremailer est très simple à utiliser et à configurer, si vous souhaitez simplement envoyer des e-mails stylisés sans configurations spéciales, ce joyau est une très bonne option.
Cette gemme est similaire à Premailer-RAILS (elle est également basée sur Premailer). Il vous suffit de l'ajouter à votre Gemfile et le tour est joué.
Utilisation : ajoutez les éléments suivants à votre Gemfile :
Avec cette gemme, vous pouvez également ajouter un fichier CSS personnalisé qui sera intégré par le prémailer. Vous pouvez y parvenir en ajoutant à votre modèle d'e-mail :
Actionmailer Inline CSS est la solution la plus simple jusqu'à présent. Il vous suffit de l'ajouter à Gemfile et vous êtes prêt à envoyer des e-mails stylisés. Si vous n'avez pas besoin de configurations spéciales, ce bijou est indispensable pour vous.
Tout comme Premailer-RAILS et Actionmailer Inline CSS, cette gemme utilise Premailer et fonctionne immédiatement.
Utilisation : ajoutez les éléments suivants à votre Gemfile :
Et puis ajoutez simplement aux mailers souhaités la ligne d'inclusion pour InlinestylesMailer:
Si vous avez un fichier CSS app/assets/stylesheets/foo_mailer* (où l'astérisque peut être .css, .css.scss ou .css.sass), il sera automatiquement appliqué au courrier à l'aide de la gemme inline_styles.
Mailer de styles en ligne est également une solution intéressante, elle est très similaire à Premailer-RAILS et Actionmailer Inline CSS. Facile à configurer et capable de gérer plusieurs fichiers CSS. À mon avis, c'est également un bon choix en fonction de vos besoins.
En fonction de vos besoins, vous pouvez choisir entre 3 gemmes basées sur le prémailer (Premailer-RAILS, Actionmailer Inline CSS et Inline Styles Mailer) ou Roadie.
Roadie dispose d'options de configuration avancées (si vous avez besoin de configurations spéciales pour utiliser le CDN ou utiliser le cache) qui peuvent s'avérer utiles, mais si vos exigences ne sont pas si élevées, vous pouvez choisir entre les trois autres joyaux, tous basés sur le prémailer et avec une utilisation très similaire.
Pour plus d'informations sur les options présentées ici, n'oubliez pas de consulter le lien de chaque gemme.
Vous avez trouvé cet article utile ? Ceux-ci vous plairont peut-être aussi !
Développeur @Imaginary Cloud, dédiée à la création de solutions logicielles exceptionnelles, engagée dans l'innovation et adoptant des technologies de pointe.
People who read this post, also found these interesting: