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 alla pagina Aspetto (Appearance) nella sezione Email della barra laterale di amministrazione, oppure vai direttamente a /admin/customize/email_style.
  2. Vedrai un editor con due schede — HTML e CSS — dove puoi modificare il template e gli stili per le tue email.

Modifica del template HTML

Il markup predefinito nella scheda HTML contiene diversi segnaposto (placeholder):

  • %{email_content} — Obbligatorio. Questo è il punto in cui verrĂ  inserito il contenuto di ogni email. Non devi rimuovere questo segnaposto.
  • %{email_preview} — Inserisce un testo di anteprima nascosto per i client di posta elettronica che mostrano uno snippet.
  • %{html_lang} — Inserisce il codice della lingua del sito nel tag <html>.
  • %{dark_mode_meta_tags} — Inserisce i meta tag per il supporto della modalitĂ  scura.
  • %{dark_mode_styles} — Inserisce gli stili CSS per il rendering della modalitĂ  scura.

Quando crei un template personalizzato, dovresti includere tutti questi segnaposto per garantire la piena compatibilità. Puoi fare riferimento al template predefinito (visibile quando apri l’editor per la prima volta) come punto di partenza.

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 scheda 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 nella scheda 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 qualsiasi regola CSS 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 testing 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. Seleziona la scheda che desideri ripristinare (HTML o CSS).
  2. Fai clic sul pulsante “Reimposta a predefinito” (Reset to default) sotto l’editor.

Questo ripristinerĂ  quella specifica sezione (HTML o CSS) al template email predefinito di Discourse. Ogni scheda viene reimpostata in modo indipendente.

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 diversi schermi

iPad Pro (10.5 inch) (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 (digest):

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

    • Disabilita l’impostazione del sito apply custom styles to digest.
  2. Per mantenere uno stile coerente su tutte le email di notifica:

    • Rimuovi qualsiasi immagine impostata come opzione del sito digest logo.
    • 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-safe per la massima compatibilitĂ . Consulta CSS Font Stack per un elenco dei caratteri disponibili su Windows e Mac.

  2. Aggiungi regole CSS per i caratteri al tuo template email di 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 consultare 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