2

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

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

如何使用 RDCOMClient 将我的 Outlook 电子邮件签名添加到 COM 对象

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

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

1 回答 1

3

让我知道这段代码是否能解决您正在寻找的问题。您需要使用该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()

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

电子邮件输出

解决方案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()
于 2017-11-12T15:17:19.740 回答