首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过outlook将R Markdown输出作为正文电子邮件发送(RDCOMclient)

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

Stack Overflow用户
提问于 2016-10-25 18:19:27
回答 2查看 2.9K关注 0票数 9

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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-02-13 01:13:26

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

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

代码语言:javascript
复制
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"。接下来,您必须使用以下命令将编码转换为正确的格式:

代码语言:javascript
复制
eb2 <- paste(eb, sep="", collapse="") 
eb2 <- iconv(eb2, from = "UTF-8",to= "Latin1")

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

代码语言:javascript
复制
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()
票数 2
EN

Stack Overflow用户

发布于 2017-06-01 21:59:54

简短的回答:

为电子邮件正文创建.Rhtml文件。

编织并阅读它:

代码语言:javascript
复制
knitr::knit("tale_email_body.Rhtml")  
library("readr", lib.loc="~/R/win-library/3.2")
eb <- read_lines("tale_email_body.html",n_max= -1L)
eb2<-paste(eb, sep="", collapse="") 

在电子邮件正文中使用结果:

代码语言:javascript
复制
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()

如果您有任何问题或改进,请告诉我。

部分归功于:How to add my Outlook email signature to the COM object using RDCOMClient

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40237343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档