使用R的RDCOMClient发送Outlook邮件时附件添加报错求助
问题解决:RDCOMClient发送Outlook邮件附件报错
错误原因分析
你的错误根源是**Attachments$Add()方法的参数使用错误**,Outlook的COM对象中,Add()方法仅需传入完整的文件路径作为第一个参数,不需要拆分路径、日期和后缀。同时你当前的路径未包含完整文件名(缺少日期与后缀的拼接),导致无法定位文件,进而触发COM调用错误。
修正后的脚本
library(RDCOMClient) # 初始化Outlook COM对象 OutApp <- COMCreate("Outlook.Application") # 创建邮件 outMail <- OutApp$CreateItem(0) # 配置邮件参数 outMail[["To"]] <- "ashishpatil@orientindia.net" outMail[["cc"]] <- "atulkadam@orientindia.net" outMail[["subject"]] <- paste0("RE: Update your Todays date ", format(Sys.Date(), "%d-%m-%y"), " Timesheet.") outMail[["body"]] <- "Dear Sir/Madam, Please find below the CMS Application - Total Count of Records Uploaded Status:" # 生成完整的附件文件路径 attachment_path <- paste0( "C:/Users/atulkadam/OneDrive - Orient Technologies Pvt. Ltd/Atul/Time Sheet/atul kadam ", format(Sys.Date(), "%d-%m-%y"), ".xlsx" ) # 添加附件(仅传入完整路径即可) outMail[["Attachments"]]$Add(attachment_path) # 发送邮件 outMail$Send()
额外注意事项
- 确保附件路径对应的文件真实存在,文件不存在也会触发类似COM错误
- 路径中的空格无需转义,RDCOMClient可正确识别
- 若仍出现COM相关错误,检查Outlook是否正常运行,或重启R会话后重试
内容的提问来源于stack exchange,提问作者Atul Kadam
相关产品推荐
相关产品推荐

