我正在运行每日分析,它会通过我的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()
原文在这里:
Sending email in R via outlook
代码一直有效,直到附件部分,电子邮件甚至发送,只是没有附件。它吐出这个错误:
<checkErrorInfo> 80020009
No support for InterfaceSupportsErrorInfo
checkErrorInfo -2147352567
Error: Exception occurred.
任何想法?
答案 0 :(得分:2)
反转斜线并将其转义。
问题是路径是在R中创建的,它更喜欢正斜杠(因为反斜杠是转义字符),但它正由Outlook解释,它只接收反斜杠。
例如,尝试通过将路径粘贴到插入文件对话框中来向Outlook电子邮件添加附件,但将反斜杠更改为正斜杠。它不接受它。这基本上就是你要做的事情。
反过来使它们成反斜杠,然后为每个反斜杠添加额外的反斜杠以逃避它们。例如:
C:\\Users\\MyFiles\\Documents\\document.txt
R将删除转义字符,并将一条干净的路径传递给Outlook。
答案 1 :(得分:1)
帮助我的答案由David Arenburg在评论中提供:
您需要指定完整路径。 L:/Document.csv是完整路径吗?是L. 本地驱动程序或您映射了网络驱动程序?如果以后是这样的话 您需要指定实际的网络路径。
示例:\\ dfwcot \ Home $ \ lando \ bb8 \ 2015-12-24 Daily Report.xlsx
答案 2 :(得分:0)
Attachments类的Add方法接受四个参数。我建议明确指定它们。
附件的来源可以是文件(由具有文件名的完整文件系统路径表示)或构成附件的Outlook项目。确保该文件可访问。
答案 3 :(得分:0)
我也面临着“错误:发生异常”的问题。
但是,在我的情况下,我缺少文件的命名约定。因此,请确保文件名一定不能用SPACE分隔,并且使用定界符作为“-”。
答案 4 :(得分:0)
您可以使用gsub()函数将“ /”更改为路径中的反斜杠“ \”
使用此:
outMail[["Attachments"]]$Add(gsub("/","\\" ,"L:/Document.csv", fixed = TRUE))
答案 5 :(得分:0)
我们的客户面临的问题是他们多次执行此操作。
在您的示例中,您反复使用文件名“ L:/Document.csv”。
每次您尝试生成此邮件时,Outlook都会在一个缓存文件夹中创建该附件。第一个是“ Document.csv”,第二个是“ Document(002).csv”等...
我们看到它达到了(799),显然这是硬限制。
我们必须清理C:\ Users <用户名> \ AppData \ Local \ Microsoft \ Windows \ INetCache \ Content.Outlook
只需双击任何邮件中的附件,然后查看该临时文件在何处显示并检查该目录。
答案 6 :(得分:-1)
你需要这样做
L:\\Document.csv
为我工作。使用两个反斜杠。