Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Outlook Macro (attachments)

Pagina: 1
Acties:

  • blastfire
  • Registratie: November 2006
  • Laatst online: 06-12-2022
Beste Mede tweakers.

Is het mogelijk om een delay in te stellen. Dat mail eerst binnenkomt en daarna word verwerkt door een Rule met marco script?

Mijn macro moet er voor zorgen dat alleen de Attached XML bestanden worden opgeslagen in een folder.
Heb hiervoor een Rule aanstaan die de incoming mails verwerkt, echter werkt het script pas als de Mail volledig is geladen in het postvak.

Zie het onderstaande VBA macro script.


Macro script:

Sub GetAttachment(MyMail As MailItem)

Dim ns As NameSpace
Dim Inbox As MAPIFolder
Dim Item As Object
Dim Atmt As attachment
Dim FileName As String
Dim i As Integer

Set ns = GetNamespace("MAPI")
Set Inbox = ns.GetDefaultFolder(olFolderInbox)
i = 0

For Each Item In Inbox.Items
For Each Atmt In Item.Attachments
If Right(Atmt.FileName, 3) = "xml" Then
FileName = "\\.......\" & Atmt.FileName
Atmt.SaveAsFile FileName
i = i + 1
End If
Next Atmt
Next Item

If i > 0 Then

Else
MsgBox "I didn't find any attached files in your mail.", vbInformation, _
"Finished!"
End If

End Sub

  • Witte
  • Registratie: Februari 2000
  • Laatst online: 15-10 13:46
Volgens mij zit er een foutje in je code.

Je roept de procedure aan met MyMail als mailitem, vervolgens maak je een loopje over alle items in het postvak in.

Als je die loop niet doet, maar je bekijkt de attchments van MyMail, functioneert het dan wel?

Houdoe


  • blastfire
  • Registratie: November 2006
  • Laatst online: 06-12-2022
Ik begrijp denk ik niet hoe de code dan zou moeten uit zien.
Wat op dit moment gebeurt is dat zodra ik de mail binnen krijgt dat hij de Rulez draait, Maar hij kan de attachment niet ophalen omdat de mail nog niet volledig is geladen in het postvak.

  • blastfire
  • Registratie: November 2006
  • Laatst online: 06-12-2022
opgelost met het onderstaande script:

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "D:\newfolder"
For Each objAtt In itm.Attachments
If InStr(objAtt.DisplayName, ".xls") Then
objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
End If
Set objAtt = Nothing
Next
End Sub