Personalizzazione del template email esterno di Discourse

:bookmark: Questa guida spiega come personalizzare e stilizzare il template HTML esterno per tutte le email inviate dal tuo sito Discourse.

:person_raising_hand: Livello utente richiesto: Amministratore

Tutte le email inviate dal tuo sito sono racchiuse in un template HTML che può essere personalizzato.

Questa guida copre:

  • Accesso alla sezione di personalizzazione dello stile delle email
  • Modifica del template HTML
  • Aggiunta di CSS personalizzato
  • Test dei template email
  • Ripristino delle modifiche
  • Un esempio di template personalizzato
  • Interazione con le email di riepilogo (digest)
  • Modifica dei caratteri (font) delle email

Accesso alla personalizzazione dello stile delle email

  1. Naviga su Amministrazione / Email / Aspetto nel tuo sito Discourse.
  2. Vedrai un editor dove puoi modificare l’HTML e il CSS per il tuo template email.

Modifica del template HTML

Il markup predefinito nell’editor contiene un segnaposto %{email_content} nella sezione body. Questo segnaposto è il punto in cui verrà inserito il contenuto di ogni email. Puoi apportare qualsiasi modifica al template purché non rimuovi questo segnaposto.

Per informazioni su come personalizzare il contenuto che sostituisce il segnaposto %{email_content}, consulta come personalizzare template email specifici.

Aggiunta di CSS personalizzato

Puoi utilizzare la sezione CSS dell’editor Stile Email per iniettare stili inline nel tuo template. Ecco un esempio:

  1. Aggiungi una classe CSS a un elemento HTML nel template:

    <td> class="my-outer-td">
    </td>
    
  2. Crea una regola per la classe nell’editor CSS:

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

Discourse sostituirà la classe CSS con la regola CSS effettiva prima di inviare l’email. Puoi aggiungere tutte le regole CSS che desideri qui.

Test dei template email

È fondamentale testare le modifiche al template email su vari client di posta elettronica, poiché potrebbero interpretare l’HTML in modo diverso. Utilizza un servizio di test delle email per visualizzare in anteprima come appariranno le tue email su diversi client, specialmente per modifiche significative.

Ripristino delle modifiche

Per ripristinare la personalizzazione del tuo template:

  1. Scorri fino alla fine dell’editor del template.
  2. Fai clic sul pulsante “Ripristina predefinito” (Reset to default).

Questa azione sostituirĂ  le tue modifiche con il template email predefinito di Discourse.

Esempio di template personalizzato

Ecco un template email di base che limita la larghezza delle email a un massimo di 600px e aggiunge un logo in alto:

<!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>

Ricorda di sostituire gli attributi src, alt e href dell’immagine con le informazioni specifiche del tuo sito.

Ecco come appare su diverse dimensioni dello schermo

iPad Pro (10.5 pollici) (iOS 13.1):

Gmail (Chrome):

iPhone 11 Pro Max (iOS 13.1):

Outlook 2019 (Windows 10)

Interazione con le email di riepilogo (digest)

Se il tuo template personalizzato aggiunge un logo a tutte le email, hai due opzioni per le email di riepilogo:

  1. Per utilizzare lo stile predefinito delle email di riepilogo:

    • Disabilita l’impostazione del sito apply custom styles to digest (applica stili personalizzati al riepilogo).
  2. Per mantenere uno stile coerente su tutte le email di notifica:

    • Rimuovi eventuali immagini impostate come impostazione del sito digest logo (logo del riepilogo).
    • Aggiungi <span></span> alla personalizzazione del testo in .../admin/customize/site_texts/user_notifications.digest.custom.html.header.

Modifica dei caratteri (font) delle email

Per cambiare i caratteri nelle tue email:

  1. Utilizza caratteri web sicuri per la massima compatibilitĂ . Fai riferimento a CSS Font Stack per un elenco dei caratteri disponibili su Windows e Mac.

  2. Aggiungi regole CSS per i caratteri al tuo template email Discourse.

  3. Puoi impostare i caratteri direttamente negli elementi HTML, ad esempio:

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

Nota che i caratteri web provenienti da servizi esterni non sono supportati da molti client di posta elettronica.

Risorse aggiuntive

Per maggiori informazioni sulla creazione di email HTML, puoi fare riferimento a questa guida completa sulla creazione di un template email HTML da zero.

18 Mi Piace

Thank @simon!

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

3 Mi Piace

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 Mi Piace

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

1 Mi Piace

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 Mi Piace

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

2 Mi Piace

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 Mi Piace

Qual è il modo migliore per cambiare il carattere nelle e-mail? Grazie.

1 Mi Piace

Penso che l’approccio più sicuro sarebbe utilizzare i font web-safe. Un buon elenco dei font disponibili sui computer Windows e Mac si trova qui: https://www.cssfontstack.com/. Dovrebbe essere sufficiente aggiungere regole CSS per i font al modello email di Discourse.

Potresti provare a includere web font da un servizio esterno per le tue email, ma devi essere consapevole che molti client di posta elettronica non supportano i web font. Alcuni dettagli a riguardo si trovano qui: The Ultimate Guide to Web Safe Fonts for Email Marketing | Litmus.

3 Mi Piace

Grazie. Userei un font web-safe. Nell’esempio sopra c’è una parte [if mso] ma non vedo dove sia impostato il font per i client non-Outlook.

1 Mi Piace

Nell’esempio di modello, i font per i client di posta elettronica diversi da Outlook vengono impostati con regole CSS aggiunte direttamente agli elementi HTML. Ad esempio:

<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 Mi Piace

Quindi lo sono. Darò la colpa allo schermo mobile stretto e mi fermerò qui :slight_smile:

2 Mi Piace

È possibile personalizzare il font del testo accanto all’avatar? Intendo il testo per:

[Nome reale] [Nome utente]
[Data]

Sono riuscito a cambiare il resto del testo dell’email, ma il testo sopra ha il seguente stile:

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 Mi Piace

Ci sono altre variabili disponibili nel modello di email?

Ad esempio, sarebbe utile avere %{year} per evitare la necessità di aggiornare i piè di pagina delle email. È disponibile?

1 Mi Piace