Base 64データURLにエンコードされた画像を使用して、HTMLで署名しようとしています。次に例を示します。
<img src="data:image/png;base64,iVBORw0KGgoAAAAN...kJggg==">
MacまたはThunderbirdのMailのようなメールソフトウェアでは問題なく動作しますが、Gmail、Outlook、roundcube、hotmailなどのWebメールでは動作しません...
それを機能させる方法について何か考えがありますか?私は本当にそれらの画像を直接ソースコードに入れたいのですが、もっと実用的です。
簡単な答えは?
できません。 Gmail、Outlookなどはbase64画像を無視します。
したがって、私たちの結果に基づいて、電子メールに埋め込まれた画像を使用することは明らかに価値がありません。あなたがやろうとしていることは、人々が彼らが見ることができないであろうエンコードされた画像をダウンロードするように強いることです。
埋め込みSVGを使用していますが、その理由は次のとおりです。
ただし、GmailやOutlookで画像を表示したい場合は、HTTP経由で画像をロードする必要があります。
CSS-tricksの人は、メールでSVGに関する素晴らしいガイドを持っています: https://css-tricks.com/a-guide-on-svg-support-in-email/
最終的な解決策は次のとおりです。
/* Resize an element that has a width and height of zero to full size */
.showy {
height: 100% !important;
width: 100% !important;
}
<!-- Image: SVG -->
<img class="showy" width="0" height="0" src="my-image.svg">
<!-- Image: JPG -->
<img class="no-showy" src="my-image.jpg">
しかし、クライアントがユーザーに追加のリソースをロードするかどうかを尋ねるのは望ましくないので、個人的には好きではありません。