8

我正在运行一项每日分析,该分析会吐出一个我想通过我的 Outlook 电子邮件发送的文件。我使用的代码在这里有特色,并且工作得很好,但它的附件部分永远不会工作......

library(RDCOMClient)


OutApp <- COMCreate("Outlook.Application")


outMail = OutApp$CreateItem(0)

outMail[["To"]] = "gkinne@horizonmedia.com"
outMail[["subject"]] = "Bruh"
outMail[["body"]] = "Tester"
outMail[["Attachments"]]$Add("L:/Document.csv")

outMail$Send()

原文在这里:

通过 Outlook 在 R 中发送电子邮件

代码一直有效,直到附件部分,电子邮件甚至发送,只是没有附件。它吐出这个错误:

<checkErrorInfo> 80020009 
No support for InterfaceSupportsErrorInfo
checkErrorInfo -2147352567
Error: Exception occurred.

有任何想法吗?

4

7 回答 7

6

反转斜线并逃脱它们。

问题是路径是在 R 中创建的,它更喜欢正斜杠(因为反斜杠是转义字符),但它被 Outlook 解释,它只接受反斜杠。

例如,尝试通过将路径粘贴到插入文件对话框中来向 Outlook 电子邮件添加附件,但将反斜杠更改为正斜杠。它不接受它。这基本上就是你想要做的。

所以反向使它们成为反斜杠,然后为每个反斜杠添加额外的反斜杠以逃避它们。例如:

C:\\Users\\MyFiles\\Documents\\document.txt

R 将去掉转义字符并将干净的路径传递给 Outlook。

于 2016-01-21T20:45:18.667 回答
1

David Arenburg 在评论中提供了帮助我的答案:

您需要指定完整路径。L:/Document.csv 是完整路径吗?L 是本地驱动程序还是您映射了网络驱动程序?如果以后是这种情况,您需要指定实际的网络路径。

示例:\\dfwcot\Home$\lando\bb8\2015-12-24 Daily Report.xlsx

于 2015-12-24T14:09:23.617 回答
0

Attachments 类的Add方法接受四个参数。我建议明确指定它们。

附件的来源可以是文件(由带有文件名的完整文件系统路径表示)或构成附件的 Outlook 项目。确保文件可访问。

于 2015-05-27T19:13:38.623 回答
0

你需要这样做

L:\\Document.csv

为我工作。使用两个反斜杠。

于 2015-06-26T18:38:15.380 回答
0

我们的客户面临的问题是他们执行此操作的次数过多。

在您的示例中,您一遍又一遍地使用文件名“L:/Document.csv”。

每次您尝试生成此邮件时,Outlook 都会在其中一个缓存文件夹中创建该附件。第一个是“Document.csv”,第二个是“Document (002).csv”等...

我们看到它运行到(799),显然这是硬限制。

我们必须清除 C:\Users<username>\AppData\Local\Microsoft\Windows\INetCache\Content.Outlook<random hex value> 中的临时文件夹以使其再次工作。

只需双击任何邮件中的附件,查看该临时文件的显示位置并检查该目录。

于 2020-11-16T16:20:49.810 回答
0

您可以使用 gsub() 函数将路径中的“/”更改为双反斜杠“\”

用这个:

outMail[["Attachments"]]$Add(gsub("/","\\" ,"L:/Document.csv", fixed = TRUE))

于 2019-05-20T19:51:07.990 回答
0

我也面临同样的“错误:发生异常”的问题。

但是,就我而言,我错过了文件的命名约定。因此,请确保文件名不能用空格分隔,并使用分隔符作为“-”。

于 2018-10-03T11:19:56.317 回答