Como adicinar imagens já em base64 num email com cid

Aconteceu-me recentemente ter imagens em base64 que tinha de ser embebidas num email.

Ora é perfeitamente possible colcar a image no email em base64 utilizando

<img src=”data:<?php echo $foto[‘foto_mime’]; ?>;charset=utf-8;base64,<?php echo $foto[‘string_base_64’]; ?>” />

O problema é que os clientes web mail não gostam deste formato (gamail, hotmail…).

Uma forma de resolver a questão é utilizar o phpmailer e a função addStringEmbeddedImage():

No corpo do email é necessário fazer referencia à imagem utilizado <img src=”cid:image_name” />

Depois no processo de envio do email utilizar a função addStringEmbeddedImage() para anexar as imagens

$mail = new phpMailer;

$mail->addStringEmbeddedImage(base64_decode($foto[‘string_base_64’]), ‘footer_image’, ‘footer_image.jpg’, ‘base64’, $foto[‘foto_mime’]);