2013-06-07 3 views
0

мой агент лотоса снимает прикрепления. На самом деле, она работает почти также исключение для письма отослано из под «[email protected]»Лотос-агент отсоединяет прикрепления (EmbeddedObjects)

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 не является массивом, хотя почта готова к прикреплению!

Я не знаю почему?

Я seached много на Google, и я только что нашел подобную проблему how to check for rtitem has embeddedObjects but object has no objects

и я попробовал намек этого here

'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

ответ

0

помощь документация EmbeddedObjects собственности говорит:

Возвращает пустое значение, если элемент богатого текста не содержит внедренных объектов.

Вместо Isarray(rtitem.EmbeddedObjects) использование IsEmpty(rtitem.EmbeddedObjects).

+0

Я использовал 'IsEmpty (rtitem.EmbeddedObjects)', который возвращает True, но почему? электронное письмо (отправлено с **[email protected]**) имеет действительно прикрепление! И 'curdoc.HasEmbedded' возвращает True. – dsea

+0

Я думаю, что приложение присутствует внутри другого богатого текстового поля или прикреплено на уровне документа. Это объясняет, почему и 'IsEmpty (rtitem.EmbeddedObjects)' и 'curdoc.HasEmbedded' возвращают true. Можете ли вы попытаться узнать, что возвращает «curdoc.EmbeddedObjects»? – Naveen

+0

ОК, я попробую. Как вы сказали, нужно ли проверять, имеет ли почта прикрепление или нет в любом текстовом поле или на уровне документа?есть ли у нас ** только решение **, которое будет работать везде, где есть прикрепление? спасибо – dsea

0

В зависимости от типа почты

  • Примечание Native = NRPC маршрутизация, Заметки Richtext или
  • Мим = SMTP- маршрутизация, мим Тип

вложений хранится в другом путь.

В «Чистой» заметке-Mail вложения хранятся в Richtext-Item «Body», и вы можете получить их оттуда.

В Mime-Mail это зависит от настроек отправителей, настроек сервера и места, в котором почта была преобразована из Mime в Richtext, могут ли вложения быть найдены в RichtextItem или в самом документе.

Кстати: Mails создан с использованием iNotes или Traveler будет Mime письма тоже ...

Зная это ответ на ваш вопрос: Там нет единого решения для обоих типов почты. Вы должны реализовать оба, чтобы быть уверенными.

Смежные вопросы