Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Fire/SOUL/CD

    félisten

    válasz sonar #2164 üzenetére

    Hali!

    1. Készíts másolatot az eredeti PST-ről!

    2. Indítsd el az Outlook-ot, ALT+F11, bal oldalon a Project csoportban Project/Microsoft Office Outlook/ThisOutlookSession-ön duplaklikk. A megjelenő jobb oldali ablakba kell majd beilleszteni a makrókódot és a menüszalagon megjelenő zöld, play gombra emlékeztető mini gombbal futtatni

    3. Három lehetséges dolog történhet
    # Sikeresen megcsinálja a dolgát, itt nincs teendő

    # Hibával kilép. Ez esetben azzal a levéllel van gond, ami az aktuális után következik, törölni kell (érkezett szerint rendezd a leveleket, mert a makró is azt teszi és abban a sorrendben megy végig rajta)
    A makró megjeleniti ebben az esetben, az utolsó sikeresen feldolgozott levelet(megnyitja, hogy könnyebben megkeresd)
    (A korábban a makró által létrehozott fájlokat célszerű törölni, mert a felülírás miatt még lassabb lesz a művelet)

    # Nem lép ki hibával, csak úgy látszólag nem történik semmi, ha úgy tetszik "megfagy". Ebben az esetben azzal a levéllel van gond, ami az épp aktuális, annak ellenére, hogy látszólag ki is mentette HTML formátumban. Törölni kell.
    (A korábban a makró által létrehozott fájlokat célszerű törölni, mert a felülírás miatt még lassabb lesz a művelet)

    Ezeket a hibákat nem tudtam lekezelni sajnos, sőt arra is fény derült a témába való belemélyedés során, hogy vannak olyan mail-ek, amiket maga az Outlook sem tud HTML-ként menteni, hiába van 1 darab kijelölve.

    Vannak tipikus levelek, ami miatt hibára fut, vagy "lefagy". Ilyenek a visszaigazolások (kézbesítési értesítés, vagy az ismeretlen címzettről szóló visszaigazolás)
    Aztán olyan levelek, amikben valamelyik mező hibás vagy üres, pl a Küldő mezője üres(ez szabálytalan). Szóval mielőtt a makrót futtatnád, kapásból szabadulj meg a visszaigazolásoktól(töröld őket)

    A makró nem tesz kárt, de mindenképp mielőtt használod a PST-ről legyen másolat(hisz lehet, hogy kell törölni is belőle) illetve csak saját felelősségre használni!

    Ez a makró a Beérkezett üzenetek mappa elemin megy végig

    Sub FSCD()

    Dim MyInBox As Outlook.MAPIFolder
    Dim MyEmail As MailItem
    Dim MyItems As Outlook.Items
    Dim i As Long, j As Long
    Dim DestPATH As String

    DestPATH = InputBox("Adja meg a mappát, ahova az EMAIL-k kerüljenek" & vbCrLf & _
    "(A mappának léteznie kell és a végére nem kell a visszaperjel!)", "FSCD - HTML Exporter", "D:\MyOutlook")
    WhatYouWant = MsgBox(Prompt:="Biztos benne, hogy futtatja a makrót?", _
    Buttons:=vbYesNo, Title:="Makró futtatás megerősítése")
    If WhatYouWant = vbNo Then Exit Sub

    Set MyInBox = Me.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
    Set MyItems = MyInBox.Items
    MyItems.Sort "SentOn", 1
    i = 1

    MyEmailCount = MyItems.Count
    For Each MyEmail In MyItems
    On Error GoTo FSCD_Error
    Dim mailObj As MailItem
    Set mailObj = MyEmail
    MySender = mailObj.SenderName
    xstr = ""
    For j = 1 To Len(MySender)
    If (Mid(MySender, j, 1)) <> Chr(34) And (Mid(MySender, j, 1)) <> "." Then xstr = xstr & Mid(MySender, j, 1)
    Next j
    MyDate = mailObj.ReceivedTime
    If (MyEmail.BodyFormat <> olFormatHTML) Then
    mailObj.BodyFormat = olFormatHTML
    End If
    FName = "\" & Format(MyDate, "yyyymmdd_hhmmss_") & xstr & ".html"
    mailObj.SaveAs DestPATH & FName, olHTML
    i = i + 1
    Next

    MsgBox ("A művelet sikerült!" & vbCrLf & _
    vbCrLf & i - 1 & "/" & MyEmailCount & " levél került feldolgozásra." & _
    vbCrLf & "Mentési útvonal: " & DestPATH)

    Free_Objects:
    Set MyEmail = Nothing
    Set MyInBox = Nothing
    Set MyItems = Nothing
    Exit Sub

    FSCD_Error:
    MsgBox (Err.Description & ": " & Err.Number & " => Nem sikerült a teljes művelet!" & vbCrLf & _
    vbCrLf & i - 1 & "/" & MyEmailCount & " levél került feldolgozásra." & _
    vbCrLf & "Az OK gombra kattintva, az utolsó feldolgozott levél meg fog nyílni.")
    mailObj.Display
    GoTo Free_Objects

    End Sub

    Fire.

    [ Szerkesztve ]

    Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

Új hozzászólás Aktív témák