Een mail uit de inbox aanpassen en weer osplaan

Status
Niet open voor verdere reacties.

Jappa S

Gebruiker
Lid geworden
3 jul 2008
Berichten
12
Een mail uit de inbox van Outlook aanpassen en weer osplaan

Hallo allemaal,

ik wil het volgende doen.
Uit een (of meerdere) geselecteerde mail de bijlage verwijderen en vervolgens in text onderaan tekst toevoegen met de verwijderde bijlages. Vervolgens de mail weer opslaan (in dezelfde map als dat die staat).

Ik ben hier al een heel end mee, alleen bij het toeveogen van tekst aan de email verlies ik de oorspronkelijke opmaak. Ik heb het volgende (in de code roep ik nog een aantal functies aan die er verder voor de vraag niet toe doen:

Code:
Sub SlaBijlageOp()

  Dim bi As BROWSEINFO
  Dim pidl As Long
  Dim path As String
  Dim pos As Integer
  Dim strDoelmap As String
  Dim strBijlage As String
  
    'Dim oMail As MailItem
    Dim oAttach As Outlook.Attachments
    Dim Item As Object
    Dim sFiles As String
    Dim iTeller As Integer
    Dim i As Integer
    
    Set Item = Application.Explorers(1).Selection
    
    For Each MailItem In Item
        Set oAttach = MailItem.Attachments
        iTeller = oAttach.Count
        sFiles = ""
        If iTeller > 0 Then
            For i = 1 To iTeller
                sFiles = sFiles & vbCrLf & oAttach(i).DisplayName
            Next i
            If MsgBox("To: " & MailItem.To & vbCrLf & "Subject: " & MailItem.Subject & vbCrLf & vbCrLf & "Wil je de volgende bijlagen uit de mail verwijderen en opslaan?" & sFiles, vbYesNo) = vbYes Then
                'message to be displayed in the Browse dialog
                  bi.lpszTitle = "Selecteer de doelmap"
                'the type of folder to return.
                  bi.ulFlags = BIF_RETURNONLYFSDIRS
                'show the browse for folders dialog
                  pidl = SHBrowseForFolder(bi)
                'the dialog has closed, so parse & display the
                'user's returned folder Selection contained In pidl
                  path = Space$(MAX_PATH)
                  If SHGetPathFromIDList(ByVal pidl, ByVal path) Then
                     pos = InStr(path, Chr$(0))
                     'MsgBox Left(path, pos - 1)
                     strDoelmap = Left(path, pos - 1)
                     'voeg aan het einde \ toe als deze er niet staat
                     If Right(strDoelmap, 1) <> "\" Then
                        strDoelmap = strDoelmap & "\"
                     End If
                  End If
  
                For i = 1 To iTeller
                    'als het bestand al bestaat vraag dan of deze overschreven moet worden of dat er
                    'een volgnummer aan het bestand moet worden gevoegd.
                    strBijlage = oAttach.Item(i).DisplayName
                    test = fFileBestaat(strDoelmap & strBijlage)
                    x = 0
                    Do Until test = False
                       x = x + 1
                       'MsgBox test & vbCr & strBijlage
                       strBijlage = Left(strBijlage, Len(strBijlage) - 4) & "_" & x & Right(strBijlage, 4)
                       test = fFileBestaat(strDoelmap & strBijlage)
                    Loop
                    'MsgBox test & vbCr & strBijlage
                    oAttach.Item(i).SaveAsFile strDoelmap & strBijlage
                Next i
                
                For i = 1 To iTeller
                    oAttach.Remove 1
                Next i
                MailItem.Body = MailItem.Body & vbCrLf & "<<< De volgende bestanden zijn verwijderd:" & sFiles & " >>>"
                MailItem.Save
                
            End If
        End If
        
    Next

End Sub

Door de regel
Code:
 MailItem.Body = MailItem.Body & vbCrLf & "<<< De volgende bestanden zijn verwijderd:" & sFiles & " >>>"
verlies ik dus de opmaak, hoe kan ik dat anders doen? Het lukt me niet om de email te benaderen en met bijvoorbeeld TypeText iets toe te voegen...

Alvast bedankt
 
Laatst bewerkt:
Het was blijkbaar een lastige vraag?

Maar ben er wel achter inmiddels, eigenlijk heel simpel.

Code:
MailItem.HTMLBody = MailItem.HTMLBody & "<P class=MsoNormal></P>" & _
                                    "<P class=MsoNormal>&lt;&lt;&lt; <STRONG>De " & _
                                    "volgende bestand(en) zijn verwijderd en opgeslagen in de map: </STRONG>" & _
                                    "<a href=" & """" & strDoelmap & """" & ">" & strDoelmap & "</a>" & " :" & "<DIV>&nbsp;</DIV>" & SFilesHTML & "&gt;&gt;&gt;</SPAN></P></DIV></BODY></HTML>"

Ik pas dus de htmlbody aan en maak een hyperlink naar de map waar de bijlage is opgeslagen.

Opgelost!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan