gpt4 book ai didi

RDCOMClient (Outlook) - ggplot

转载 作者:行者123 更新时间:2023-12-03 19:35:21 25 4
gpt4 key购买 nike

我正在使用 RDCOMClient库以创建 Outlook 电子邮件。我要发ggplot作为电子邮件正文中的图像(内联),不是 作为附件。

我认为这可能的唯一方法是将绘图作为图像添加到 HTMLBody 中。属性(property)。我尝试了 2 种不同的方法在 html 中添加图像。

1 - 使用 RMarkdown库,我创建了一个带有情节的 html 页面。这不起作用,因为图像被编码为 base64字符串,Outlook 不支持。

2 - 将 ggplot 保存到文件并手动创建一个简单的 html,例如:<html><body><img src="**path**/my_plot.png" /></body></html> .这也显示错误而不是图像。

有没有办法内联添加图像?

编辑:

第二种方法适用于本地电子邮件,但接收者的消息有错误而不是实际图像。

最佳答案

您可以附加图像并使用内容 ID(“cid”)在电子邮件正文中引用它:

library(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg)) + geom_point()
ggsave(tf<-tempfile(fileext = ".png"), p, dpi = 100, width = 5, height = 5)
library(RDCOMClient)
OutApp <- COMCreate("Outlook.Application")
outMail = OutApp$CreateItem(0)
attach <- outMail[["Attachments"]]$Add(tf)
invisible(attach$PropertyAccessor()$SetProperty(
"http://schemas.microsoft.com/mapi/proptag/0x370E001E",
"image/png"
))
invisible(attach$PropertyAccessor()$SetProperty(
"http://schemas.microsoft.com/mapi/proptag/0x3712001E",
cid <- "myggplotimg"
))
outMail[["To"]] = "johndoe@example.com"
outMail[["Subject"]] = "ggplot image"
outMail[["HTMLbody"]] <- sprintf('<p>Here is your image:<br><img src="cid:%s"></p>', cid)
invisible(outMail$Save())
rm(outMail, attach, OutApp)

关于RDCOMClient (Outlook) - ggplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50067820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com