r - 通过 Outlook (RDCOMclient) 将 R Markdown 输出作为正文电子邮件发送

标签 r vba outlook r-markdown rdcomclient

刚刚学习 R Markdown 语言,想知道是否可以通过 Outlook 从 R 发送正文电子邮件中的输出(使用 RDCOMClient;我的办公室不使用 gmail)

谢谢

最佳答案

根据 Ben 的回答,到处出现的奇怪符号可能是由 R 和 Outlook 对象(由 RDCOMClient 库创建)之间的不匹配引起的。

Outlook 的基本编码是“UTF-16”,而基本的 RMarkdown 输入是“UTF-8”。要确保 RMarkdown 生成的 html 输出采用“UTF-8”格式,请写入:

knitr::knit("tale_email_body.Rmd", encoding = "UTF-8")  
eb <- read_lines("tale_email_body.html",locale =  locale(encoding = "UTF-8"))     
Encoding(eb)

您应该看到一个向量,其条目为“UTF-8”“unknown”。接下来,您必须使用以下方法将编码转换为正确的格式:

eb2 <- paste(eb, sep="", collapse="") 
eb2 <- iconv(eb2, from = "UTF-8",to= "Latin1")

您应该能够使用 Ben 的代码发送没有奇怪符号的电子邮件:

library(RDCOMClient)

olMailItem <- 0
OutApp <- COMCreate("Outlook.Application")
outMail = OutApp$CreateItem(olMailItem)

# this retains default Outlook signature
outMail$GetInspector()
signature <- outMail[["HTMLBody"]]

outMail[["To"]] <- sm
outMail[["CC"]] <- paste("egrp",dm,sep=";")
outMail[["subject"]] <- "note this"
outMail[["BodyFormat"]] <- 2
outMail[["HTMLbody"]] <- paste0(eb2, signature)
outMail$Display()
outMail$Send()

关于r - 通过 Outlook (RDCOMclient) 将 R Markdown 输出作为正文电子邮件发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40237343/

相关文章:

r - ggplot2 ggsave : keep embedded fonts in exported . png

excel - 使用 VBA 过滤工作表数据

excel - 比较 2 列并删除重复项而不移动

c# - 作为流的 Outlook MailItem

html - HTML 电子邮件中的可折叠表格 (Outlook 2007-2010)

r - r 中的 MATCH 函数

r - 按 R 中其他列中的条件选择的一列获取唯一行

r - 过滤掉 data.table 中的重复/非唯一行

vba - PowerPoint VBA - 使用宏插入符号

html - outlook html 时事通讯中的空白