Lösen von Anhängen

  • Ich hab morz den Stress mit Anhängen.
    Hintergrund ist folgender:
    2x in der Woche kriegen wir Mails von einer bestimmten Adresse. Diese sollen dann gleich nach Eingang gelößt werden. Hier das Script dazu:


    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim folder As NotesView
    Dim col As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim body As Variant
    Dim Attachments As Variant
    Dim path As String
    Dim Fullpath As String

    Set db = s.CurrentDatabase
    Set folder = db.GetView("($Inbox)")
    Set col = Folder.GetAllDocumentsByKey(Nothing, True)
    Set doc = col.GetFirstDocument

    While Not(doc Is Nothing)

    If doc.HasEmbedded Then


    Set body = doc.GetFirstItem("Body")
    Attachments = body.EmbeddedObjects


    Forall o In Attachments
    'path
    path = "c:\temp\work\"
    Fullpath = path + o.name
    Call o.ExtractFile(Fullpath)
    End Forall

    End If

    Call doc.PutInFolder("Archiv")
    Call doc.RemoveFromFolder("($Inbox)")
    Stop
    Set doc = col.GetNextDocument(doc)
    Wend


    Bei HasEmbedded kommt zwar ein True zurück, aber das Array von GetEmbedded bleibt leer. Wieso? Und was kann man dagegen tun?


    Bei manchen Dokumenten sind zwar Anhänge drin, aber HasEmbedded gibt False zurück und in der Ansicht sieht man die Büroklammer auch nicht.

  • Hi, ich habe das Problem bei mir mit folgendem Code gelöst.


    Sub Initialize
    ' Dieser Agent prüft eingehende Mails, ob das Schlüsselwort im Betreff enthalten ist und
    ' ob *.VTI Dateien im Anhang enthalten sind.
    ' Dann wird der Anhang in das festgelegte Verzeichnis gelöst und das Mail in den definierten Ordner
    ' verschoben.

    'ACHTUNG
    'Der Agent prüft nicht, ob das ExtrPfad angelegt ist und ob Sie darauf Zugriff haben
    'Ebenfalls muss der Ordner in dem die Mails verschoben werden sollen, angelegt sein !

    Dim ses As New notessession
    Dim db As notesdatabase
    Dim doc As notesdocument
    Dim dc As notesdocumentcollection
    Dim subj,itm As Variant
    Dim eo As notesembeddedobject
    Dim Betreff, GesAnhang,AblageIn,ExtrPfad As String


    Betreff="Test" 'Textteil der Im Betreff vorkommen muss
    AblageIn="Archiv" 'Ordner in dem die Mail abgelegt werden soll
    GesAnhang=".VTI" 'Textteil der im Dateinamen des Anhangs enthalten sein muss
    ExtrPfad="C:\Temp\" 'Pfad in dem der Anhang gelöst werden soll

    Set db = ses.currentdatabase
    Set dc = db.unprocesseddocuments
    Set doc = dc.getfirstdocument

    Do While Not(doc Is Nothing)
    subj=doc.getitemvalue("Subject")
    If Instr(subj(0), Betreff) Then
    If doc.hasembedded Then
    Set itm=doc.getfirstitem("Body")
    If itm.type=RICHTEXT Then
    Forall Anhang In itm.embeddedobjects
    If Anhang.type = EMBED_ATTACHMENT Then
    If Not Instr(1,Anhang.name,GesAnhang,1)=0 Then
    Set eo = doc.getattachment(Anhang.name)
    If eo Is Nothing Then Exit Do
    Call eo.extractfile(ExtrPfad & Anhang.name)
    Call doc.putinfolder(AblageIn)
    Call doc.removefromfolder("($Inbox)")
    End If
    End If
    End Forall
    End If
    End If
    End If
    Set doc = dc.getnextdocument(doc)
    Loop
    End Sub


    :)
    Spider

  • Hi,


    wenn ich das o.a. Script bei "Eingang neuer Mail" laufen lasse bekomme ich folgende Fehlermeldung
    AMgr: Agent ('tif' in 'mail\jgang.nsf') error message: Object variable not set
    Es handelt sich um eine Mail die von unsere Faxlösung ND.Charon
    an die Mailbox gesendet wurde.


    Wenn ich eine Mail mit einem passendem Attachment an die Mailbox leite funktioniert das lösen.


    Any ideas ???????


    Danke
    Achim