如何使用SmtpJS发送内嵌图片的邮件 官方示例仅支持文本和附件
基于SMTPJS实现邮件内嵌图片的方案
要实现将图片内嵌到邮件内容中,可直接通过HTML格式的邮件正文搭配Base64编码的图片源实现,无需额外依赖附件参数,具体实现方式如下:
- 首先将需要内嵌的图片转换为Base64编码字符串,编码后需保留
data:image/[图片格式];base64,的固定前缀 - 将
Email.send方法中的Body字段设置为HTML内容,将img标签的src属性赋值为上述Base64字符串即可
完整代码示例
// 示例base64图片串,实际使用时替换为你自己的图片编码结果 const inlineImgBase64 = "data:image/png;base64,这里替换为你的图片Base64编码内容"; Email.send({ Host : "smtp.yourisp.com", Username : "username", Password : "password", To : 'them@website.com', From : "you@isp.com", Subject : "这是带内嵌图片的邮件主题", // Body传入HTML格式内容,直接插入img标签 Body : `<p>这是邮件正文内容,下方是内嵌图片:</p> <img src="${inlineImgBase64}" alt="内嵌图片" style="max-width: 100%;">` }).then( message => alert(message) );
注意:部分邮箱服务商对Base64图片的大小有限制,建议单张内嵌图片大小控制在2M以内,避免被邮件系统拦截或显示异常。如果需要插入多张图片,重复添加img标签即可。
内容的提问来源于stack exchange,提问作者joantoh
相关产品推荐
相关产品推荐

