Personalizando o template de e-mail externo do Discourse

:bookmark: Este guia explica como personalizar e estilizar o template HTML externo para todos os e-mails enviados do seu site Discourse.

:person_raising_hand: Nível de usuário necessário: Administrador

Todos os e-mails enviados do seu site são encapsulados em um template HTML que pode ser personalizado.

Este guia abrange:

  • Acessando a seção de personalização de estilo de e-mail
  • Modificando o template HTML
  • Adicionando CSS personalizado
  • Testando templates de e-mail
  • Revertendo alterações
  • Um exemplo de template personalizado
  • Interação com e-mails de resumo (digest)
  • Alterando fontes de e-mail

Acessando a personalização de estilo de e-mail

  1. Navegue até Admin / Email / Aparência no seu site Discourse.
  2. Você verá um editor onde pode modificar o HTML e o CSS para o seu template de e-mail.

Modificando o template HTML

O markup padrão no editor contém um placeholder %{email_content} na seção body. Este placeholder é onde o conteúdo de cada e-mail será inserido. Você pode fazer quaisquer alterações no template, desde que não remova este placeholder.

Para obter informações sobre como personalizar o conteúdo que substitui o placeholder %{email_content}, consulte como personalizar templates de e-mail específicos.

Adicionando CSS personalizado

Você pode usar a seção CSS do editor de Estilo de E-mail para injetar estilos inline no seu template. Aqui está um exemplo:

  1. Adicione uma classe CSS a um elemento HTML no template:

    <td> class="my-outer-td">
    </td>
    
  2. Crie uma regra para a classe no editor de CSS:

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

O Discourse substituirá a classe CSS pela regra CSS real antes de enviar o e-mail. Você pode adicionar quaisquer regras CSS que desejar aqui.

Testando templates de e-mail

É crucial testar suas alterações de template de e-mail em vários clientes de e-mail, pois eles podem interpretar o HTML de forma diferente. Use um serviço de teste de e-mail para pré-visualizar como seus e-mails aparecerão em diferentes clientes, especialmente para alterações significativas.

Revertendo alterações

Para reverter sua personalização de template:

  1. Role até o final do editor de template.
  2. Clique no botão “Resetar para o padrão” (Reset to default).

Esta ação substituirá suas alterações pelo template de e-mail padrão do Discourse.

Exemplo de template personalizado

Aqui está um template de e-mail básico que restringe a largura dos e-mails a um máximo de 600px e adiciona um logotipo no topo:

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

Lembre-se de substituir os atributos src, alt e href da imagem pelas informações específicas do seu site.

Veja como fica em diferentes tamanhos de tela

iPad Pro (10.5 polegadas) (iOS 13.1):

Gmail (Chrome):

iPhone 11 Pro Max (iOS 13.1):

Outlook 2019 (Windows 10)

Interação com e-mails de resumo (digest)

Se o seu template personalizado adicionar um logotipo a todos os e-mails, você tem duas opções para e-mails de resumo:

  1. Para usar o estilo de e-mail de resumo padrão:

    • Desative a configuração do site apply custom styles to digest (aplicar estilos personalizados ao resumo).
  2. Para manter a estilização consistente em todos os e-mails de notificação:

    • Remova quaisquer imagens definidas como a configuração do site digest logo (logotipo do resumo).
    • Adicione <span></span> à personalização de texto em .../admin/customize/site_texts/user_notifications.digest.custom.html.header.

Alterando fontes de e-mail

Para alterar fontes em seus e-mails:

  1. Use fontes seguras para a web para máxima compatibilidade. Consulte CSS Font Stack para uma lista de fontes disponíveis no Windows e Mac.

  2. Adicione regras CSS para as fontes ao seu template de e-mail do Discourse.

  3. Você pode definir fontes diretamente em elementos HTML, por exemplo:

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

Observe que fontes da web de serviços externos não são suportadas pela maioria dos clientes de e-mail.

Recursos adicionais

Para mais informações sobre a criação de e-mails HTML, você pode consultar este guia abrangente sobre como construir um template de e-mail HTML do zero.

18 curtidas

Thank @simon!

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

3 curtidas

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 curtidas

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

1 curtida

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 curtidas

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

2 curtidas

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 curtidas

Qual é a melhor maneira de alterar a fonte nos e-mails? Obrigado.

1 curtida

Acho que a abordagem mais segura seria usar fontes seguras para a web. Uma boa lista de quais fontes estão disponíveis em computadores Windows e Mac está aqui: https://www.cssfontstack.com/. Deve ser suficiente adicionar regras CSS para as fontes ao seu modelo de e-mail do Discourse.

Você poderia tentar usar fontes da web de um serviço externo para seus e-mails, mas precisa estar ciente de que muitos clientes de e-mail não suportam fontes da web. Alguns detalhes sobre isso estão aqui: The Ultimate Guide to Web Safe Fonts for Email Marketing | Litmus.

3 curtidas

Obrigado. Eu usaria uma fonte segura para a web. No exemplo acima, há uma parte [if mso], mas não consigo ver onde a fonte para clientes que não sejam o Outlook é definida.

1 curtida

No modelo de exemplo, as fontes para clientes de e-mail que não são do Outlook estão sendo definidas com regras CSS que são adicionadas diretamente aos elementos HTML. Por exemplo:

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

Então eles são. Vou culpar a tela estreita do celular e deixar por isso mesmo :slight_smile:

2 curtidas

É possível personalizar a fonte do texto ao lado do avatar? Refiro-me ao texto para:

[Nome real] [Nome de usuário]
[Data]

Consegui alterar o restante do texto do e-mail, mas o texto acima tem o seguinte estilo:

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 curtida

Existem outras variáveis disponíveis no modelo de e-mail?

Por exemplo, seria útil ter %{year} para evitar a necessidade de atualizar os rodapés dos e-mails. Isso está disponível?

1 curtida