Avatar billede Slettet bruger
08. maj 2003 - 08:53 Der er 15 kommentarer og
1 løsning

Oprettelse af regel der automatisk detacher vedhæftede filer.....

Er det i MS Outlook 2000 muligt at oprette en regel, der automatisk detacher vedhæftede filer i givne mails til en bestemt lokation?
Avatar billede Slettet bruger
08. maj 2003 - 09:16 #1
Jeg mener ikke det er muligt ved brug af regler.
Jeg har dog en makro der kopierer attachments fra alle indkomne mails til en bestemt mappe, hvis det havde interesse  ?
Avatar billede Slettet bruger
08. maj 2003 - 09:18 #2
Det har da bestemt interesse :-)
Avatar billede Slettet bruger
08. maj 2003 - 09:47 #3
Skal lige rette den lidt til...
Avatar billede Slettet bruger
08. maj 2003 - 09:49 #4
OK
Avatar billede Slettet bruger
08. maj 2003 - 10:16 #5
I Outlook, tryk ALT + F11.
Indsæt følgende kode under ThisOutlookSession

--------------------------------

Private Sub Application_NewMail()
    StripAttachments ("F:\Attachments\")    'Remember last backslash '\'
End Sub


'---------------------------------------------------------------------------------------
' Procedure : Strip
' DateTime  : 21-12-2002 23:26
' Author    : Thomas Christensen (tc@elvis.dk)
' Purpose  : Recursively saves attachments in user-defined directory
'            Checks for embedded mail items and saves attachments from these, if found
'---------------------------------------------------------------------------------------
'
Private Sub Strip(MailitemToStrip As MailItem, SaveDir As String)

On Error GoTo ErrorHandler

Dim i As Integer
Dim MItem As MailItem

Set MItem = MailitemToStrip
Dim SaveFilename As String
Dim msg As Object

With MItem.Attachments
   
    If .Count = 0 Then
        Exit Sub
    ElseIf .Count > 0 Then
        For i = 1 To .Count
            If Right(MItem.Attachments(i).FileName, 3) = "msg" Then
                SaveFilename = SaveDir & MItem.Attachments.Item(i).FileName
                MItem.Attachments.Item(i).SaveAsFile SaveFilename
                Set msg = Application.CreateItemFromTemplate(SaveFilename)
                Call Strip(msg, SaveDir)
               
                '' Delete temporary Outlook messages
                If Not Dir(SaveFilename) = "" Then
                    Kill SaveFilename
                End If
                Set msg = Nothing
               
            Else
                '' Save attachments that are not Outlook messages
                SaveFilename = SaveDir & MItem.Attachments.Item(i).FileName
                MItem.Attachments.Item(i).SaveAsFile SaveFilename
            End If
           
        Next i
    End If
   
End With

Exit Sub
ErrorHandler:
    Debug.Print Err.Description & " " & Err.Number & " " & Err.Source
    Exit Sub

End Sub

'---------------------------------------------------------------------------------------
' Procedure : StripAttachments
' DateTime  : 21-12-2002 23:29
' Author    : Thomas Christensen (tc@elvis.dk)
' Purpose  : Strips Attachments off incoming mail items, and saves
'            them in a user-defined directory.
'
' Dependancies: Private Sub Strip(MailitemToStrip As MailItem, SaveDir As String)
'
' Usage example:
'  Private Sub Application_NewMail()
'      StripAttachments ("F:\Attachments\")    'Remember last backslash '\'
'  End Sub
'
'---------------------------------------------------------------------------------------
'
Public Sub StripAttachments(SaveDir As String)

    On Error GoTo ErrorHandler
   
    Dim myOlApp As Outlook.Application
    Set myOlApp = Application
   
    Dim myFolder As Outlook.MAPIFolder
    Set myFolder = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
   
    Dim myMail As MailItem
    Set myMail = myFolder.Items.GetLast
   
    If TypeName(myMail) = "MailItem" Then
        Call Strip(myMail, SaveDir)
    End If
    Exit Sub
   
ErrorHandler:
    Debug.Print Err.Description & " " & Err.Number & " " & Err.Source
    Exit Sub
   
End Sub

-----------------------

Husk at rette mappenavnet til.

Bemærk at
Tools -> Macro -> Security
skal sættes til Low, ellers tillader Outlook ikke at koden udføres.
Avatar billede Slettet bruger
08. maj 2003 - 10:40 #6
Når jeg indsætter macroen får jeg en form frem på skærmen: UserForm1.
Det kommer nok fra
"Private Sub UserForm_Click()
End Sub"
som jeg ikke kan slette.

Hvad gør jeg forkert?
Avatar billede Slettet bruger
08. maj 2003 - 10:45 #7
Marker koden med Private Sub UserForm_Click() og slet den.
Dobbeltklik på ThisOutlookSession i venstre side, og indsæt koden.
Avatar billede Slettet bruger
08. maj 2003 - 11:24 #8
Kan ikke finde: "ThisOutlookSession"......
Avatar billede Slettet bruger
08. maj 2003 - 11:31 #9
1.  I Outlook. Vælg Tools -> Macro -> Visual Basic Editor
2.  I venstre side af Visual Basic editoren, dobbeltklik på Project1.
3.  Dobbeltklik på Microsoft Outlook Objects.
4.  Dobbeltklik på ThisOutlookSession.
5.  Indsæt koden.
6.  Gem.
Avatar billede Slettet bruger
08. maj 2003 - 12:04 #10
Kunne du få det til at virke ?
Avatar billede Slettet bruger
08. maj 2003 - 12:05 #11
Funktionen virker vel kun når outlook er åbnet, når mailen modtages? Hvordan aktiveres den efterfølgende?
Avatar billede Slettet bruger
08. maj 2003 - 12:05 #12
ellers virker det fint :-)
Avatar billede Slettet bruger
08. maj 2003 - 12:21 #13
Umiddelbart er den beregnet til at køre på Application_Newmail() event.

Hvis du gør følgende...
1. Åben VB editoren.
2. Vælg  Insert -> Module
3. Indsæt følgende kode i modulet

----------
'---------------------------------------------------------------------------------------
' Procedure : Strip
' DateTime  : 21-12-2002 23:26
' Author    : Thomas Christensen (tc@elvis.dk)
' Purpose  : Recursively saves attachments in user-defined directory
'            Checks for embedded mail items and saves attachments from these, if found
'---------------------------------------------------------------------------------------
'
Private Sub Strip(MailitemToStrip As MailItem, SaveDir As String)

On Error GoTo ErrorHandler

Dim i As Integer
Dim MItem As MailItem

Set MItem = MailitemToStrip
Dim SaveFilename As String
Dim msg As Object

With MItem.Attachments
   
    If .Count = 0 Then
        Exit Sub
    ElseIf .Count > 0 Then
        For i = 1 To .Count
            If Right(MItem.Attachments(i).FileName, 3) = "msg" Then
                SaveFilename = SaveDir & MItem.Attachments.Item(i).FileName
                MItem.Attachments.Item(i).SaveAsFile SaveFilename
                Set msg = Application.CreateItemFromTemplate(SaveFilename)
                Call Strip(msg, SaveDir)
               
                '' Delete temporary Outlook messages
                If Not Dir(SaveFilename) = "" Then
                    Kill SaveFilename
                End If
                Set msg = Nothing
               
            Else
                '' Save attachments that are not Outlook messages
                SaveFilename = SaveDir & MItem.Attachments.Item(i).FileName
                MItem.Attachments.Item(i).SaveAsFile SaveFilename
            End If
           
        Next i
    End If
   
End With

Exit Sub
ErrorHandler:
    Debug.Print Err.Description & " " & Err.Number & " " & Err.Source
    Exit Sub

End Sub

'---------------------------------------------------------------------------------------
' Procedure : StripAttachments
' DateTime  : 21-12-2002 23:29
' Author    : Thomas Christensen (tc@elvis.dk)
' Purpose  : Strips Attachments off incoming mail items, and saves
'            them in a user-defined directory.
'
' Dependancies: Private Sub Strip(MailitemToStrip As MailItem, SaveDir As String)
'
' Usage example:
'  Private Sub Application_NewMail()
'      StripAttachments ("F:\Attachments\")    'Remember last backslash '\'
'  End Sub
'
'---------------------------------------------------------------------------------------
'
Public Sub StripAttachments()

    On Error GoTo ErrorHandler
   
    Dim myOlApp As Outlook.Application
    Set myOlApp = Application
   
    Dim myFolder As Outlook.MAPIFolder
    Set myFolder = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
   
    Dim myMail As MailItem
    Set myMail = myFolder.Items.GetLast
   
    If TypeName(myMail) = "MailItem" Then
        Call Strip(myMail, "F:\Attachments\")
    End If
    Exit Sub
   
ErrorHandler:
    Debug.Print Err.Description & " " & Err.Number & " " & Err.Source
    Exit Sub
   
End Sub
---------------

4. Ret mappenavnet i proceduren StripAttachments()
5. Gem og luk VB editoren.
6. I Outlook vælg  Tools -> Customize  New Toolbar
7. Commands -> Macros -> Stripattachments

Burde du kunne lave en knap der aktiverer makroen.
Avatar billede Slettet bruger
08. maj 2003 - 12:33 #14
Jeg vælger nok at køre den via ALT F11 - mange tak for hjælpen.
Avatar billede Slettet bruger
08. maj 2003 - 12:46 #15
Jeg har alligevel lavet macroen - det virker også fint.
Avatar billede Slettet bruger
08. maj 2003 - 12:52 #16
Godt det virker :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester