Vraag & Antwoord

Programmeren

Automatisch bijlagen opslaan in outlook

3 antwoorden
  • Dames en heren, ik laat op mijn pc via een script en outlook bijlagen opslaan op een netwerkshare. als ik een mail stuur naar het email adres dat op de pc draait worden dus automatisch alle bijlagen opgeslagen en worden er op de netwerkshare al dan niet acties uitgevoerd op de bijlagen. dit werkte de eerste dag fantastisch...mijn lol kon niet op, alle attachments werden mooi opgeslagen. echter, nu 1 dag later doet het ineens niets meer. ik heb daarna nog verschillende andere scripts geprobeerd die feitelijk hetzelfde doen maar helaas, deze doen het ook niet. de scripts werken wel op mijn werklaptop dus m.i. is er niets mis met de scripts. schrijfrechten op de netwerkshare zijn ook geen probleem, ik kan gewoon bestanden heen en weer knippen/kopieëren en ik heb zelfs het netwerkpad een lokale pad gegeven in de code en helaas, ook hier geen bijlagen die worden opgeslagen. wat gaat er fout hier? het deed het wel, en ineens weer niet. :s ik heb op de server McAfee Enterprise draaien en daar [b:fe5cdd81c8]uit[/b:fe5cdd81c8]gevinkt staan dat er scripts moeten worden gescand. op de client draait geen antivirus of andere beveiligingssoftware. buiten dat, het script werkte eerst wel op meerdere clients (heb op verschillende clients ingelogd en de regels waren netjes meegekopieerd en werkten). De clients draaien op XP en outlook (script is Visual Basic), de server is een w3k en draait exchange. het gaat om volgende scripts die ik beiden heb geprobeerd: [code:1:fe5cdd81c8]1: Sub SaveToFolder(MyMail As MailItem) Dim strID As String Dim objNS As Outlook.NameSpace Dim objMail As Outlook.MailItem Dim objAtt As Outlook.attachment Dim c As Integer Dim save_name As String Const save_path As String = "\\myhood\share\nzb\" strID = MyMail.EntryID Set objNS = Application.GetNamespace("MAPI") Set objMail = objNS.GetItemFromID(strID) If objMail.Attachments.Count > 0 Then For c = 1 To objMail.Attachments.Count Set objAtt = objMail.Attachments(c) save_name = Left(objAtt.FileName, Len(objAtt.FileName) - 4) 'save_name = save_name & Format(objMail.ReceivedTime, "_mm-dd-yyyy_hhmm") save_name = save_name & Right(objAtt.FileName, 4) objAtt.SaveAsFile save_path & save_name Next End If Set objAtt = Nothing Set objMail = Nothing Set objNS = Nothing End Sub [/code:1:fe5cdd81c8] en een wat simpelere: [code:1:fe5cdd81c8]2: Public Sub saveAttachtoDisk(itm As Outlook.MailItem) Dim objAtt As Outlook.attachment Dim saveFolder As String saveFolder = "\\myhood\share\nzb\" For Each objAtt In itm.Attachments objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName Set objAtt = Nothing Next End Sub [/code:1:fe5cdd81c8] beiden doen dus NIETS, maar werken wel op mijn werklaptop. iemand?! :( PS: ik maak gebruik van een rootshare in AD.
  • Ik ben geen Visual Basic coder, maar je saveFolder variabele eindigt met een '\', en later als je de filenaam samenstelt voor het opslaan zet je er weer eerst een '\' voor, wat dus bijvoorbeeld '\\myhood\share\nzb[b:b245393cdd]\\[/b:b245393cdd]bla' oplevert. Mogelijk vindt Windows dat niet leuk? (Als je op je werklaptop een andere shared folder gebruikte en daarbij per ongeluk geen '\' aan het eind had, zou dat verklaren waarom het daar wel werkte)
  • met of zonder die backslash maakt geen verschil :( ik snap er echt nix van. kan toch niet zomaar ineens niet meer werken?!

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.