Foto's als bijlage direct opslaan in map

Status
Niet open voor verdere reacties.

afarensis

Verenigingslid
Lid geworden
12 jul 2011
Berichten
586
Besturingssysteem
Windows 11
Office versie
365
Ik weet niet of het uberhaupt mogelijk is, maar ik meen het ooit gelezen te hebben.

Ik krijg dagelijks in Outlook 2010 tientallen berichten binnen van mijn bewakingscamera. Betreft dan opnames door bewegingsdetectie.
Nu heb ik ze al omgeleid naar een speciale map, zodat die berichten niet tussen mijn 'gewone' mail staan.

Ik kan natuurlijk een voor een de foto's bekijken en eventueel opslaan. Maar... wat heel mooi zou zijn is dat de foto's 'automatisch' uit de berichten gelicht kunnen worden en naar een speciale map gestuurd/opgeslagen zouden kunnen worden. Bijvoorbeeld met behulp van een script of een speciaal programma hiervoor.

Ik werk met Windows 8.1.

Ik ben benieuwd of er zoiets bestaat.
 
Hallo,

Bedankt voor je reactie en tips..

Wellicht ben ik onvolledig geweest in mijn vraag. In de camera zit een geheugenkaartje waar ik ook de beelden op terug kan zien. Maar dat is 'ook' moeizaam. Ik moet dan naar de browser/ip-versie (noem ik het maar) en dan na 4 klikken kom ik pas bij de foto's die ik dan ook 1 voor 1 moet bekijken. Dus nog omslachtiger. Ik weet ook dat er DVR-recorders zijn, maar die voor mij veel te duur. Ben gewoon een privé persoon met een eenvoudige ip-camera...

Nee, ik zoek het dus echt bij de berichten in Outlook waar telkens als bijlage een foto zit. En 'die' foto's wil ik dus op een of andere manier 'automatisch' in een map zien te krijgen, zodat ik ze snel en eenvoudig kan bekijken, bijvoorbeeld met ACDsee of een vergelijkbaar programma.
 
Laatst bewerkt:
Bedankt voor de tip..

Ben bezig een ftp-verbinding op te zetten, maar kom hier niet helemaal uit (de padnaam is onduidelijk). Hier over gesproken met medewerker XS4all, maar zonder resultaat. Nu een mail naar cameraleverancier gestuurd. Als er meer duidelijk is, koppel ik zeker nog even terug...


Update 4 mei...

Inmiddels gelukt om FTP-verbinding op te zetten...

"Mooi, maar het antwoord op mijn oorspronkelijk vraag:

"wat heel mooi zou zijn is dat de foto's 'automatisch' uit de berichten gelicht kunnen worden en naar een speciale map gestuurd/opgeslagen zouden kunnen worden. Bijvoorbeeld met behulp van een script of een speciaal programma hiervoor."


is - denk ik - dat het gewoon niet mogelijk is. Ga ik daar maar vanuit...

Nogmaals dank voor het meedenken...

George
 
Laatst bewerkt:
Is het te kort door de bocht om bij het omleiden van je mail een actie eraan toe te voegen die de bijlagen apart opslaat. Ik neem aan dat je met wizard regels de mail in een aparte map zet. Je kunt vervolgens aangeven wat er met de mail moet gebeuren en een van deze acties is een script uitvoeren. Daar kun je een script laten draaien dat de bijlagen opslaat op een bepaalde locatie.
 
Ja, zo'n script, die de bijlagen apart op kan slaan, dat zou heel mooi zijn. Dat is dus eigenlijk wat ik bedoelde. Maar... hoe kom ik aan zo'n script en is dat niet te ingewikkeld voor een doorsnee computerhobbyist.

Als iemand mij hiermee een beetje op weg kan helpen, zou dat heel prettig zijn.
 
Het scriptje ziet er zo uit:
Code:
Sub BijlagenOpslaan()
On Error GoTo BijlagenOpslaan_err

Dim ns As NameSpace
Dim Inbox As MAPIFolder
Dim SubFolder As MAPIFolder
Dim Item As Object
Dim Atmt As Attachment
Dim FileName As String, Pad As String
Dim i As Integer
Dim varResponse As VbMsgBoxResult
    
    Set ns = GetNamespace("MAPI")
    Set Inbox = ns.GetDefaultFolder(olFolderInbox)
    Set SubFolder = ns.PickFolder
    i = 0

    ' Controleer de gekozen folder en stop als er geen mails in zitten.
    If SubFolder.Items.Count = 0 Then
        MsgBox "Er zijn geen mailtjes in de map " & SubFolder.Name & ".", vbInformation, "Niks gevonden..."
        Exit Sub
    End If

    ' Controleer of de mails een bijlage bevatten.
    For Each Item In SubFolder.Items
        For Each Atmt In Item.Attachments
            ' Controleer de extensie van de bijlagen.
            If Right(Atmt.FileName, 3) = "jpg" Or Right(Atmt.FileName, 3) = "png" Then
            ' Pad wordt aangemaakt als het niet bestaat; gebaseerd op datum/tijd.
                On Error GoTo DirMaken
                Pad = "H:\Camera\" & Format(Item.CreationTime, "yyyymmdd") & "\"
                If Dir(Pad, vbDirectory) & "" = "" Then MaakFolder (Pad)
                FileName = Pad & Atmt.FileName
                Atmt.SaveAsFile FileName
                i = i + 1
            End If
        Next Atmt
    Next Item

    ' Samenvatting laten zien.
    If i > 0 Then
        varResponse = MsgBox("Er zijn " & i & " foto's gevonden." & vbCrLf _
        & "Deze zijn opgeslagen in de map H:\Camera\." & vbCrLf & vbCrLf _
        & "Wil je ze nu bekijken?", vbQuestion + vbYesNo, "KLaar!")

        ' Windows Explorer openen en de bestanden laten zien
        If varResponse = vbYes Then
            Shell "Explorer.exe /e, " & Pad & ", vbNormalFocus"
        End If
    Else
        MsgBox "Geen bijlagen gevonden in de mails.", vbInformation, "Klaar!"
    End If

'-----------------------------------------------------------------------------------------
' Alles opschonen
'-----------------------------------------------------------------------------------------
BijlagenOpslaan_exit:
    Set Atmt = Nothing
    Set Item = Nothing
    Set ns = Nothing
    Exit Sub

'-----------------------------------------------------------------------------------------
' Foutafhandeling
'-----------------------------------------------------------------------------------------
BijlagenOpslaan_err:
    MsgBox "Er is een onverwachte fout opgetreden." & vbCrLf _
        & "Noteer en meld de volgende foutmelding:" & vbCrLf _
        & "Macro Naam: BijlagenOpslaan" & vbCrLf _
        & "Fout nummer: " & Err.Number & vbCrLf _
        & "Omschrijving: " & Err.Description, vbCritical, "Error!"
    Resume BijlagenOpslaan_exit

DirMaken:
'-----------------------------------------------------------------------------------------
'Nieuwe map maken als hij nog niet bestaat
'-----------------------------------------------------------------------------------------
    Call MaakFolder(Pad)
    Resume Next

End Sub

Code:
Function MaakFolder(strFolder)
'Aanroepen met:     MaakFolder "D:\Apps\Sjablonen\Oost\Sjablonen\"
Dim oFSO As Object
    
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    If oFSO.FolderExists(strFolder) Then
        Exit Function
    Else
        MaakFolder (oFSO.GetParentFolderName(strFolder))
    End If
    oFSO.CreateFolder (strFolder)
    Set oFSO = Nothing
End Function

Je kunt hem aanroepen bij het starten van Outlook, maar ik weet niet of dat zinvol is. Hij werkt in ieder geval prima als je vanuit het VBA venster (<ALt>+<F11>) werkt en de macro runt. Je moet sowieso naar het VBA venster om a) een module te maken (<Invoegen>, <Module>) en b) daar de code te plakken.
De onderste functie maakt automatisch een map aan met de foto's op basis van de dag van de file. Je selecteert in de macro de map met de foto's die je wilt inlezen, maar je kunt de regel PickFolder uiteraard ook aanpassen en er een vaste map voor gebruiken.
 
Zeer bedankt voor de moeite die je genomen hebt...

Maar, maar, dit is echt veel te ingewikkeld voor mij. Ik heb wel eens een eenvoudig bat-bestandje gemaakt en ik heb een beetje kennis van HTML, maar met Visual Basic aan de slag gaan, dat is echt te moeilijk.
Ik vind het ook te ver gaan om jou (jullie) te vragen om dat is allemaal eens uit te leggen. Het was meer de vraag of ik op een relatief eenvoudige manier de bijlagen eruit kon filteren. Ik sla ze nu op een ftp-server op en als ze daaruit kopieer naar mijn eigen omgeving, dan kan ik de foto's ook snel bekijken. Dus ik stel voor om het hierbij maar te laten.

Nogmaals dank voor de moeite...
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan