RDCOMClient + Outlook电子邮件

时间:2017-08-27 06:17:01

标签: r outlook rdcomclient

我正在尝试通过R-Code从我的Outlook发送电子邮件。它在大多数情况下运作良好。我正在使用RDCOMClient来做我需要的事情。

唯一的问题是签名;我尝试了这个链接中给出的说明:

How to add my Outlook email signature to the COM object using RDCOMClient

但是,我的签名会被这行中的电子邮件正文覆盖:

outMail[["HTMLBody"]] = paste0('<p>some body', signature, '</p>')

1 个答案:

答案 0 :(得分:2)

如果此代码解决了您要查找的内容,请告诉我。您需要使用paste命令将正文粘贴到签名。见下文。

library(RDCOMClient)

# This is the original body you have created
original_body <- "This body has been created to just for visualization"
# Adding signature which can be modified as required
# The <br> is html tag for line break. Anything typed after this will move to next line
Your_Signature <- paste0("Thanks & Regards,<br>", "YourName")
# Creating new body which will be used in email
new_body <- paste("<p>",original_body, "</p>", Your_Signature)

# init com api
OutApp <- COMCreate("Outlook.Application")
# create an email 
outMail = OutApp$CreateItem(0)
# configure  email parameter 
outMail[["To"]] = "test@test.com"
outMail[["subject"]] = "TEST"
outMail[["HTMLbody"]] = new_body
# send it                     
outMail$Send()

您将收到一封包含输出的电子邮件,如下所示。

Email Output

解决方案2: 由于您尚未提供已使用的代码,因此我使用了自己的代码并修复了使用GetInspector时出现的签名问题。如果这有帮助,请告诉我。

library(RDCOMClient)

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

# Get signature from outlook
# GetInspector renders the message in html format.
# Note that if you have not created any signatures, this will return blank
outMail$GetInspector()
Signature <- outMail[["HTMLbody"]]

# Define the body of you email separately
body <- "Define your body here."

outMail[["To"]] = "test@test.com"
outMail[["subject"]] = "TEST EMAIL"

# Paste the body and signatures into the email body
outMail[["HTMLbody"]] = paste0("<p>", body, "</p>", Signature)
outMail$Send()