Incorporar imagens em emails criados usando o SQL Server Database Mail
-
09-06-2019 - |
Pergunta
Estou trabalhando em uma solução de e-mail SOMENTE no SQL Server que usará o Database Mail para enviar e-mails formatados em HTML.O problema é que as imagens no HTML precisam ser incorporadas no email enviado.Isso não seria um problema se eu estivesse usando um aplicativo .net para gerar e enviar e-mails, mas, infelizmente, tudo que tenho é o SQL Server.
É possível que o SQL Server incorpore imagens por conta própria?
Solução
Sim, o que você precisa fazer é incluir as imagens como anexos e então elas poderão ser referenciadas dentro do HTML.
Use o @file_attachment
parâmetro de sp_send_dbmail
Outras dicas
Você tem duas possibilidades:
- (fácil) Hospede as imagens em algum lugar e faça referência a elas no
<img src="...">
. - (difícil) Codifique-os em Base64 e crie uma mensagem MIME multipartes com IDs de conteúdo conhecidos, para que possam ser referenciados no corpo da mensagem via
cid:
URIs.
Cada possibilidade tem suas desvantagens:
- As imagens remotas não podem ser carregadas nos clientes de e-mail modernos para fins de privacidade.
- Provavelmente aumenta a pontuação de spam.
Quando os clientes receptores estão sob seu controle (por exemplo,mesma organização), você pode estar igualmente bem de qualquer maneira.
Você pode tentar codificar a imagem como base64 e referenciá-la diretamente em uma tag img no email ( <img src="data:image/png;base64[your encoded image here...]
), mas acho que a maioria dos clientes de e-mail correlaciona essa técnica com spam.Acho que é melhor fazer referência às imagens hospedadas ou simplesmente anexá-las ao e-mail.