从HTML页面发送带有图像的邮件

Mut*_*thu 11 html javascript email

当按下按钮并且正文应包含特定DIV的图像时,我必须调出outlook compose框.我正在使用html2canvas来捕获图像,使用mailto我可以触发outlook撰写邮件实例,但似乎mailto是简单的纯文本,并且不支持在邮箱中嵌入图像.

任何想法,想法?

sam*_*ris 14

TL; DR:你不能这样做.


您可以使用数据URI方案在HTML中嵌入图像.如果是电子邮件MIME类型,text/html您也可以这样做.您必须使用合适的编码对图像进行编码(例如:)base64.

例如:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
Run Code Online (Sandbox Code Playgroud)

但是,您不能bodymailto:URL 的部分中包含HTML.根据 RFC 2368,body参数的内容被视为纯文本.

特殊的hname"body"表示关联的hvalue是消息的主体."body"hname应该包含消息的第一个text/plain正文部分的内容.mailto URL主要用于生成实际上是自动处理内容的短文本消息(例如邮件列表的"订阅"消息),而不是一般的MIME主体.

因此,如果您使用URL编码的HTML作为URL的body参数mailto:,则会发生以下情况:

<a href="mailto:email@domain.com?subject=Check%20this%20out!&body=%3Cp%3EHi%3C%2Fp%3E%3Cimg%20src%3D%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4%2F%2F8%2Fw38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg%3D%3D%22%20alt%3D%22Red%20dot%22%20%2F%3E">Write Email!</a>
Run Code Online (Sandbox Code Playgroud)

结果:

新的Outlook邮件

  • 这是一个很好的答案!对不起OP,没有办法做你想要的事. (2认同)