Autor Thema: Attachment aus Mail ablösen  (Gelesen 2305 mal)

Offline robin

  • Frischling
  • *
  • Beiträge: 25
  • Geschlecht: Männlich
Attachment aus Mail ablösen
« am: 12.11.09 - 12:27:22 »
Hallo,

ich möchte mails und deren Anhänge in einem Ordner abspeichern. Dazu wird ein Verzeichnis erstellt und der Inhalt der Mail in eine Datei abgespeichert.

Zusätzlich möchte ich die Attachments ebenfalls in dieses Verzeichnis abspeichern. Bei Richtext Mails funktioniert das auch - jedoch finde ich keine Lösung wenn z.B. unser Scanner ein PDF einscannt - dann ist scheinbar der Anhang nicht vorhanden:

folgender Code:

...................
...............
               Set streamdatei = session.CreateStream
   Call streamdatei.Open(auswahlvz(0) & "\" & vznew & "\" & dateiname)
   Call streamdatei.Writetext(bodyrichtext(0))
   Call streamdatei.close
   
   '*****************************************************
                '************* Attachment ablösen ************************
   Dim rtnav As NotesRichTextNavigator
   Dim att As NotesEmbeddedObject
   Dim body As NotesRichTextItem
   
   'Wenn keine Embedded dann kann nix abgelöst werden
   If Not doc.HasEmbedded Then Exit Sub
   
   '1ter Versuch über den Body einen anhang zu finden
   Set body = doc.GetFirstItem("Body")
   Set rtnav = body.CreateNavigator
   
   Dim File As NotesEmbeddedObject
   Dim VorlagenFeld As Variant
   Set VorlagenFeld = doc.GetFirstItem("Body")
   If rtnav.FindFirstElement(RTELEM_TYPE_FILEATTACHMENT) Then
   Do
       Set att = rtnav.GetElement()
       Set File = VorlagenFeld.GetEmbeddedObject(att.Source)
       If Not (file Is Nothing) Then
           File.ExtractFile(createnewdir + "\" + att.Source)         
           Print " File extracted"
       Else
          Set File = doc.GetAttachment(att.Source)
          if Not (file Is Nothing) Then
             File.ExtractFile(createnewdir + "\" + att.Source)
             Print "File extracted"
          Else
      'test abgesehen davon das mehrere Attachments drinnen
      'sein können -> Versuch
      'Im attachment steht ein anderer Dateiname
      'Fehler --> On Disk Struktur
      attachmentNames = Evaluate( "@AttachmentNames(1)", doc)
      Set File = doc.GetAttachment(attachmentNames(0))
      File.ExtractFile("d:\" + attachmentNames(0))
           End If
   End If
          Loop While rtnav.FindNextElement()
      End If
      '***************************************************************

Das eigenartige ist das bei gewissen Mails im $File ein anderer Dateiname steht als
die Datei selbst benannt ist. Dabei ist die var File im Code  immer nothing. Versuche ich dann
über das doc.GetAttachment(attachmentNames(0) das File abzulösen  bekomme
ich die Fehlermeldung: Die Datenbank kann wegen eines ungültigen Formats (On-Disk-Struktur) nicht gelesen werden .... Das File selbst kann jedoch ohne Probleme geöffnet werden.

Bin schon schön langsam am verzweifeln .... danke für Ihre Hilfe
lg Michael
Michael Hillebrand
Lotus Domino/Notes 8.5 Windows TS 2003 / 2008

Offline geppertb

  • Frischling
  • *
  • Beiträge: 27
Re: Attachment aus Mail ablösen
« Antwort #1 am: 19.11.09 - 17:39:23 »
Werden die emails aus Lotus Notes versandt oder von anderen email clients?
Sollten Sie als MIME Type gesendet werden ist es sehr wahrscheinlich das es gar kein $File Field gibt.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz