2017-08-27 191 views
0

我试图通过R代码从我的Outlook发送电子邮件。它在大多数情况下运作良好。我正在使用RDCOMClient来完成我所需要的工作。RDCOMClient + Outlook电子邮件

唯一的问题是签名;我想在这个环节上作出批示:

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

然而,我的签名获取与该行的电子邮件的正文覆盖:

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

回答

1

让我知道如果这个代码可以解决你是什么寻找。您需要使用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"]] = "[email protected]" 
outMail[["subject"]] = "TEST" 
outMail[["HTMLbody"]] = new_body 
# send it      
outMail$Send() 

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

Email Output

解决方案2: 既然你没有提供已使用的代码,我用我自己的代码和固定使用GetInspector时arised签名问题。让我知道这是否有帮助。

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"]] = "[email protected]" 
outMail[["subject"]] = "TEST EMAIL" 

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