Imagens inline em e-mail

Como vocês viram no post do Alex sobre o ColdFusion MX 6.1 Updater, agora a tag cfmailparam suporta dois novos atributos, disposition e contentid.

Eles são bastante úteis para enviar imagens inline no e-mail, isto é, a imagem atachada, mas aparecendo direto no e-mail, no meio da mensagem (não como um anexo); e o próprio e-mail já contém o arquivo da imagem, não sendo necessário estar conectado a Internet (ou o programa de e-mail permitir carregar imagens de servidores remoto..).

Para atachar uma imagem, utilizamos a tag cfmailparam com os atributos file e type. Adicionando o atributo disposition (que pode ser inline ou attachment) com o valor inline e colocando um id único no atributo contentID, é possível enviar a imagem inline, como no exemplo abaixo.


<!--- remente de mensagem --->
<cfset to="fabio@provedor.com.br">

<!--- destinatário --->
<cfset from="remetente@provedor.com.br">

<!--- caminho da imagem a ser colocada inline na mensagem --->
<cfset imagemPath="#ExpandPath('.')#/imagem.jpg">

<!--- exemplo de contentID, que deve ser único --->
<cfset contentID="#hash(imagemPath)#.#to#">

<!--- envio um e-mail no formato HTML --->
<cfmail to="#to#" from="#from#" subject="Envio de imagem inline" type="HTML">

<!--- anexo o arquivo inline na mensagem --->
<cfmailparam disposition="inline" contentID="#contentID#" file="#imagemPath#" type="image/jpeg">

<!--- mostro a imagem, utilizando o "caminho" cid:content_id_da_imagem --->
<b>meu e-mail em html</b>
<img src="cid:#contentID#">
<i>imagem acima</i>

</cfmail>


3 Comments on “Imagens inline em e-mail”

  1. Jonas Galvez disse:

    Adicione o seguinte no seu CSS:

    code p { display: inline; }

    A formatação do código tá zoada aqui por causa das tags <p> que o MT adiciona. Outra solução é deixar um espaço em cada linha branca no código, assim as tags <p> não são adicionadas.

  2. rrr disse:

    wewewwe

  3. antonio disse:

    como mandarimagem para o imail tinha mas fechou