gmailr包无法添加邮件签名,能否用gm_html_body插入签名内嵌图?
问题
我正在制作面向多家企业的调研邀请邮件,想要给邮件添加签名。查了不少论坛的签名相关API问题,发现大多是针对mailr包的,很少有gmailr包的相关内容。如果gmailr本身没法直接添加签名,能不能通过gm_html_body()函数插入带签名的内嵌图片?附上我的示例代码:
gm_mime() %>% gm_to("xyz@yzs.com") %>% gm_from(" xyz@gmail.com") %>% gm_subject(paste("Invitation")) %>% gm_html_body(body = paste(glue("<p>Estimados Sres. <b>{total[['empresa']][k]}</b></p> \ <p> </p>\ <p>Atención Sr.(a) {total[['names']][k]}</p>\ <p> </p>\ <p><i>email</i> test no. {k}</p>"), "<p>favor intentar enviarnos un correo siempre a {from}.</p> \ <p> Grupo focal verde validado </p>", "<h2> A plot of <b>MotorTrend</b> data <i>(1974)</i></h2> <img src='LOGO.jpeg'>"),inline = T) %>% gm_attach_file('LOGO.jpeg') %>% gm_create_draft()
回答
完全可以通过gm_html_body()结合内嵌图片的方式实现带签名的效果,不过你当前的代码有个关键问题需要调整:
- 内嵌图片的
src属性不能直接写文件名,必须用cid:前缀加上附件的Content-ID,邮件客户端才能正确识别并显示内嵌资源。 - 需要给
gm_attach_file()指定id参数,这个ID要和img标签里的cid完全对应。
调整后的代码示例:
gm_mime() %>% gm_to("xyz@yzs.com") %>% gm_from("xyz@gmail.com") %>% gm_subject("Invitation") %>% gm_html_body(body = glue("<p>Estimados Sres. <b>{total[['empresa']][k]}</b></p> \ <p> </p>\ <p>Atención Sr.(a) {total[['names']][k]}</p>\ <p> </p>\ <p><i>email</i> test no. {k}</p>\ <p>favor intentar enviarnos un correo siempre a {from}.</p> \ <p> Grupo focal verde validado </p>\ <h2> A plot of <b>MotorTrend</b> data <i>(1974)</i></h2>\ <p>--- 签名分割线 ---</p>\ <img src='cid:signature_logo'>"), inline = TRUE) %>% gm_attach_file('LOGO.jpeg', id = "signature_logo") %>% gm_create_draft()
额外补充两点:
- 如果你的签名包含文字信息(比如姓名、职位、联系方式),可以直接在HTML中添加对应的段落或样式,和图片组合成完整签名。
- 建议先通过
gm_create_draft()创建草稿查看效果,确认图片正常显示后再发送,避免出现格式问题。
内容的提问来源于stack exchange,提问作者almr27
相关产品推荐
相关产品推荐

