调用Outlook对象附件操作函数报错:attempt to apply non-function
问题原因及解决思路
这个错误的核心原因是:my_outlook$list_emails(n = 1)返回的不是单个可调用方法的邮件对象,而是一个包含邮件的集合(比如列表、数据框/tibble)。此时email变量指向的是这个集合,而非具体的邮件实例,所以$list_attachments和$download_attachment根本不是可调用的函数,自然抛出"attempt to apply non-function"错误。
具体验证与解决步骤
- 先查看
email的结构,确认返回类型:
str(email)
- 根据返回结构提取真正的邮件对象:
- 如果返回的是列表(长度为1),直接取第一个元素:
email <- my_outlook$list_emails(n = 1)[[1]] - 如果返回的是数据框/tibble(比如部分Outlook相关R包的返回格式),需要提取存储邮件对象的列(通常列名类似
email_object):email <- my_outlook$list_emails(n = 1)$email_object[[1]]
- 如果返回的是列表(长度为1),直接取第一个元素:
- 提取完成后,再调用
list_attachments()或download_attachment()即可正常执行。
内容的提问来源于stack exchange,提问作者iago nunes
相关产品推荐
相关产品推荐

