0

我的莲花代理分离附件。实际上,除了“ xxx@aol.fr ”发送的邮件外,它几乎可以正常工作

Set rtitem = curdoc.GetFirstItem("Body")
If Not rtitem Is Nothing Then
    If Isarray( rtitem.EmbeddedObjects ) Then 
        Forall o In rtitem.EmbeddedObjects
            If ( o.Type = EMBED_ATTACHMENT ) Then 
                fullpath = path + o.source
                Call o.ExtractFile(fullpath) 
            End If
        End Forall
    End If
End If

我确实调试了这个代理,我看到测试“Isarray(rtitem.EmbeddedObjects)”没有通过。这意味着 rtitem.EmbeddedObjects 不是数组,尽管邮件已经准备好附件!

我不知道为什么?

我在谷歌上搜索了很多,我刚刚发现了一个类似的问题如何检查 ritem has embeddedObjects but object has no objects

我在这里尝试了这个提示

    'test
    Dim vEval As Variant
    Dim embObj As NotesEmbeddedObject
    vEval = Evaluate("@AttachmentNames", curdoc)
    ForAll v In vEval
        LogInfo("detacheFichier() v=" & v)
        If v <> "" Then
            Set embObj = curdoc.GetAttachment(v)
            Call embObj.ExtractFile(pathDir + pathFile & v)
        End If
    End ForAll

它运作良好。我很高兴,但最后一个:我不明白为什么前面的代码不起作用

非常感谢 dsea

4

2 回答 2

0

财产的帮助文档EmbeddedObjects说:

如果富文本项不包含嵌入对象,则返回空。

而不是Isarray(rtitem.EmbeddedObjects)使用IsEmpty(rtitem.EmbeddedObjects).

于 2013-06-07T12:51:43.710 回答
0

根据邮件类型

  • Notes Native = NRPC Routed、Notes Richtext 或
  • Mime = SMTP- 路由,Mime- 类型

附件以不同的方式存储。

在“Pure”Notes-Mail 中,附件存储在 Richtext-“Body”项中,您可以从那里获取它们。

在 Mime-Mails 中,取决于发件人设置、服务器设置和邮件从 Mime 转换为 Richtext 的位置,附件是否可以在 RichtextItem 或文档本身中找到。

顺便说一句:使用 iNotes 或 Traveler 创建的邮件也将是 Mime 邮件......

知道这一点,您的问题的答案是:两种类型的邮件都没有单一的解决方案。您需要同时实现两者才能确定。

于 2013-06-07T15:06:51.097 回答