Personnalisation du modèle d'e-mail externe de Discourse

:bookmark: Ce guide explique comment personnaliser et styliser le modèle HTML externe pour tous les e-mails envoyés depuis votre site Discourse.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur

Tous les e-mails envoyés depuis votre site sont encapsulés dans un modèle HTML qui peut être personnalisé.

Ce guide couvre :

  • L’accès à la section de personnalisation du style des e-mails
  • La modification du modèle HTML
  • L’ajout de CSS personnalisé
  • Le test des modèles d’e-mails
  • L’annulation des modifications
  • Un exemple de modèle personnalisé
  • L’interaction avec les e-mails de résumé (digest)
  • La modification des polices d’e-mail

Accès à la personnalisation du style des e-mails

  1. Naviguez vers Admin / E-mail / Apparence dans votre site Discourse.
  2. Vous verrez un éditeur où vous pouvez modifier le HTML et le CSS pour votre modèle d’e-mail.

Modification du modèle HTML

Le balisage par défaut dans l’éditeur contient un espace réservé %{email_content} dans la section body. Cet espace réservé est l’endroit où le contenu de chaque e-mail sera inséré. Vous pouvez apporter toutes les modifications que vous souhaitez au modèle tant que vous ne supprimez pas cet espace réservé.

Pour plus d’informations sur la personnalisation du contenu qui remplace l’espace réservé %{email_content}, consultez comment personnaliser des modèles d’e-mails spécifiques.

Ajout de CSS personnalisé

Vous pouvez utiliser la section CSS de l’éditeur de style d’e-mail pour injecter des styles en ligne dans votre modèle. Voici un exemple :

  1. Ajoutez une classe CSS à un élément HTML dans le modèle :

    <td> class="my-outer-td">
    </td>
    
  2. Créez une règle pour la classe dans l’éditeur CSS :

    .my-outer-td {
      padding: 30px 0 30px 0;
    }
    

Discourse remplacera la classe CSS par la règle CSS réelle avant d’envoyer l’e-mail. Vous pouvez ajouter toutes les règles CSS que vous souhaitez ici.

Test des modèles d’e-mails

Il est crucial de tester vos modifications de modèle d’e-mail sur divers clients de messagerie, car ils peuvent interpréter le HTML différemment. Utilisez un service de test d’e-mails pour prévisualiser l’apparence de vos e-mails sur différents clients, en particulier pour les changements importants.

Annulation des modifications

Pour annuler la personnalisation de votre modèle :

  1. Faites défiler jusqu’au bas de l’éditeur de modèle.
  2. Cliquez sur le bouton « Réinitialiser par défaut » (Reset to default).

Cette action remplacera vos modifications par le modèle d’e-mail Discourse par défaut.

Exemple de modèle personnalisé

Voici un modèle d’e-mail de base qui limite la largeur des e-mails à un maximum de 600px et ajoute un logo en haut :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>
  <body style="margin: 0; padding: 0;">
    <!--[if mso]>
    <style type="text/css">
      body, table, td, th, h1, h2, h3 { font-family: Helvetica, Arial, sans-serif !important; }
    </style>
    <![endif]-->
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr>
        <td style="padding: 10px 0 30px 0;">
          <!--[if gte mso 9]>
          <table width="600" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td>
          <![endif]-->
          <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;border-collapse: collapse;">
            <tr>
              <td style="padding: 20px 15px 20px 15px;">
                <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
                  <tr>
                    <td align="center">
                      <a href="https://forum.example.com">
                        <img src="https://your-site-logo-url" alt="Your site name" width="150" height="40" style="display: block;"/>
                      </a>
                    </td>
                  </tr>
                </table>
              </td>
            </tr>
            <tr>
              <td style="padding: 0 15px 0 15px;">
                <hr style="background-color: #ddd; height: 1px; border: 1px;" />
              </td>
            </tr>
            <tr>
              <td style="padding: 20px 15px 30px 15px; color: #153643; font-family: Helvetica, Arial, sans-serif; font-size: 16px; line-height: 20px;">
                %{email_content}
              </td>
            </tr>
          </table>
          <!--[if gte mso 9]>
              </td>
            </tr>
          </table>
          <![endif]-->
        </td>
      </tr>
    </table>
  </body>
</html>

N’oubliez pas de remplacer les attributs src, alt et href de l’image par les informations spécifiques de votre site.

Voici à quoi cela ressemble sur différentes tailles d'écran

iPad Pro (10,5 pouces) (iOS 13.1) :

Gmail (Chrome) :

iPhone 11 Pro Max (iOS 13.1) :

Outlook 2019 (Windows 10)

Interaction avec les e-mails de résumé (digest)

Si votre modèle personnalisé ajoute un logo à tous les e-mails, vous avez deux options pour les e-mails de résumé :

  1. Pour utiliser le style d’e-mail de résumé par défaut :

    • Désactivez le paramètre de site apply custom styles to digest (appliquer les styles personnalisés au résumé).
  2. Pour maintenir un style cohérent sur toutes les notifications par e-mail :

    • Supprimez toutes les images définies comme paramètre de site digest logo (logo du résumé).
    • Ajoutez <span></span> à la personnalisation du texte à l’adresse .../admin/customize/site_texts/user_notifications.digest.custom.html.header.

Modification des polices d’e-mail

Pour modifier les polices dans vos e-mails :

  1. Utilisez des polices Web sûres pour une compatibilité maximale. Consultez CSS Font Stack pour une liste des polices disponibles sur Windows et Mac.

  2. Ajoutez des règles CSS pour les polices à votre modèle d’e-mail Discourse.

  3. Vous pouvez définir des polices directement dans les éléments HTML, par exemple :

    <td style="font-family: Helvetica, Arial, sans-serif; font-size: 16px; line-height: 20px;">
      %{email_content}
    </td>
    

Notez que les polices Web provenant de services externes ne sont pas prises en charge par de nombreux clients de messagerie.

Ressources supplémentaires

Pour plus d’informations sur la création d’e-mails HTML, vous pouvez consulter ce guide complet sur la création d’un modèle d’e-mail HTML à partir de zéro.

18 « J'aime »

Thank @simon!

Could you be so kind to provide a full text of template? I would be happy to try it.

3 « J'aime »

Thanks for pointing that out. It must have been a copy/paste error when I created the topic. I’ve added the full template to the post now.

3 « J'aime »

How can we get the logo_url from Discourse in this template? is this possible?

1 « J'aime »

The easiest way might be to open your browser’s web inspector on your DIscourse site and copy the value of the logo’s src attribute into the template. You could also get the logo URL from the rails console by looking at the value of the url property that is returned for SiteSetting.logo

4 « J'aime »

Ok cool, this is how I’m doing it right now, thanks!

2 « J'aime »

Very nice. I think this should be the default. Most sites use a centered column 600px wide.

Seems like there should be a separate wrapper to edit for digest emails.

2 « J'aime »

Quelle est la meilleure façon de changer la police dans les e-mails ? Merci.

1 « J'aime »

Je pense que l’approche la plus sûre serait d’utiliser des polices web sûres. Une bonne liste des polices disponibles sur les ordinateurs Windows et Mac se trouve ici : https://www.cssfontstack.com/. Il devrait suffire d’ajouter des règles CSS pour les polices à votre modèle d’e-mail Discourse.

Vous pourriez essayer d’intégrer des polices web à partir d’un service externe pour vos e-mails, mais vous devez savoir que de nombreux clients de messagerie ne prennent pas en charge les polices web. Vous trouverez plus de détails à ce sujet ici : The Ultimate Guide to Web Safe Fonts for Email Marketing | Litmus.

3 « J'aime »

Merci. J’utiliserais une police Web-safe. Dans l’exemple ci-dessus, il y a une partie [if mso] mais je ne vois pas où la police pour les clients non-Outlook est définie.

1 « J'aime »

Dans le modèle d’exemple, les polices pour les clients de messagerie autres que Outlook sont définies avec des règles CSS ajoutées directement aux éléments HTML. Par exemple :

<td style="padding: 20px 15px 30px 15px; color: #153643; font-family: Helvetica, Arial, sans-serif; font-size: 16px; line-height: 20px;">
    %{email_content}
</td>
2 « J'aime »

Alors ils le sont. Je blâmerai le petit écran mobile et m’arrêterai là :slight_smile:

2 « J'aime »

Est-il possible de personnaliser la police du texte à côté de l’avatar ? Je veux dire, le texte pour :

[Nom réel] [Nom d’utilisateur]
[Date]

J’ai réussi à changer le reste du texte de l’e-mail, mais le texte ci-dessus a le style suivant :

style=“color:#006699;; font-size:13px;font-family:‘lucida grande’,tahoma,verdana,arial,sans-serif;text-decoration:none;font-weight:bold; text-decoration: none; font-weight: bold; color: #006699;”

1 « J'aime »

D’autres variables sont-elles disponibles dans le modèle d’e-mail ?

Par exemple, il serait utile d’avoir %{year} pour éviter d’avoir à mettre à jour les pieds de page des e-mails. Est-ce disponible ?

1 « J'aime »