Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Unterscheidung eingebundene und angehängte Anlagen

Frage Entwicklung Visual Studio

Mitglied: ahstax

ahstax (Level 2) - Jetzt verbinden

06.08.2013 um 14:55 Uhr, 2128 Aufrufe, 8 Kommentare, 4 Danke

Hallo,

gibt es eine Möglichkeit, Anlagen einer E-Mail daraufhin zu überprüfen, ob diese bereits im Mailkörper "eingebunden" verwendet wurden (z.B. als Logo in einer Signatur) oder ob diese Anlage "völlig getrennt" vom Mailkörper ist?

Hintergrund:
Ich möchte eingehende E-Mails drucken, speichere dazu die Mail und die Anlagen getrennt ab. "Eingebundene" Anlagen werden bis dato wie einfach angefügte Dateien behandelt.

Mit diesem Code speichere ich die Anlagen bis jetzt ab:

01.
... 
02.
For i = 1 To intAnlagen 'Anlagen im vordefinierten Verzeichnis sichern 
03.
   objNewMailItem.Attachments.Item(i).SaveAsFile(strMailSpeicherBenennung & "_" & .Attachments.Item(i).FileName) 
04.
Next i 
05.
...
Neugierige Grüße,
Andreas

(Outlook 2010, VB2010Express)
Mitglied: colinardo
06.08.2013 um 15:27 Uhr
Hallo Andreas,
sieh dir diesen Thread mal an, da hatte ich schon eine Lösung dafür präsentiert, jedoch mit einem kostenpflichtigen Plugin.

Grüße @colinardo
Bitte warten ..
Mitglied: ahstax
06.08.2013 um 16:03 Uhr
Hallo colinario,

Danke für Deinen Tipp, ich werde mit das ansehen.

Gibt es vielleicht auch eine kostenfreie Möglichkeit?

Grüße,
Andreas
Bitte warten ..
Mitglied: colinardo
06.08.2013, aktualisiert um 16:31 Uhr
Zitat von ahstax:
Gibt es vielleicht auch eine kostenfreie Möglichkeit?
Nun, man könnte die Attachments identifizieren indem man den HTML-Body auf das vorkommen des Attachment-Filenames prüft. Ist dieser im Body vorhanden sollte es ein Inline-Attachment sein:

Beispiel: (Das MailItem musst du natürlich noch zuweisen)
01.
Dim itm As MailItem 
02.
set itm = ........ 
03.
Dim att As Attachment 
04.
For Each att In itm.Attachments 
05.
    If InStr(1, itm.HTMLBody, att.FileName, vbTextCompare) > 0 Then 
06.
        'Attachment wird im Body verwendet 
07.
        Debug.Print "'" & att.FileName & "' ist ein Inline Attachment!" 
08.
    else 
09.
        'Attachment ist ein richtiger Anhang 
10.
        debug.print "'" att.Filename & "' ist ein richtiges Attachment"  
11.
    End If 
12.
Next
Wenn der Nutzer aber den Dateinamen im Mailtext erwähnt, klappt diese Variante nicht. Hier müsste man dann via Regular Expressions den Inhalt genauer prüfen um z.B. Bilder-Tags (<img.../>) auszufiltern.

Grüße @colinardo
Bitte warten ..
Mitglied: ahstax
07.08.2013 um 16:00 Uhr
Hallo colinardo,

immer wieder begeistert!

Funktioniert so etwas auch mit einem Word-Dokument? Im Moment speicher ich die E-Mail, zu der die fraglichen Anlagen gehören, als olDoc ab...
Allerdings wäre ein Abspeichern sowohl als HTML als auch als olDoc auch möglich mit anschließender Prüfung und "Ausschluss"...

Grüße,
Andreas
Bitte warten ..
Mitglied: colinardo
07.08.2013, aktualisiert um 16:17 Uhr
(nur zur Info das oben war nur VBA zum testen in Outlook)
Die Überprüfung setzt auf den HTML-Code der Mail, da in diesem der Name des Inline-Attachments auftaucht wenn es denn eins ist, du musst also zum überprüfen diesen vorhalten. Mach die Überprüfung vor der Speicherung und verfrachte dort die Attachments in die passenden Ordner.

Grüße Uwe
Bitte warten ..
Mitglied: ahstax
09.08.2013 um 08:52 Uhr
Mir ist da noch was eingefallen.
In der eigentlichen Mail werden als Anlage ja nur diejenigen Anlagen genannt, die "tatsächlich" Anlagen sind. Ist Outlook selbst "klever" genug, um das unterscheiden zu können? Ich nehme mal an, dass man das nicht nutzen kann, sonst müsste man vermutlich den "Umweg" über das oben beschriebene Vorgehen nicht wählen...?
Bitte warten ..
Mitglied: colinardo
09.08.2013 um 12:21 Uhr
Zitat von ahstax:
Mir ist da noch was eingefallen.
In der eigentlichen Mail werden als Anlage ja nur diejenigen Anlagen genannt, die "tatsächlich" Anlagen sind. Ist
Outlook selbst "klever" genug, um das unterscheiden zu können? Ich nehme mal an, dass man das nicht nutzen kann,
sonst müsste man vermutlich den "Umweg" über das oben beschriebene Vorgehen nicht wählen...?
Diese Funktion stellt Outlook den Nutzern leider nicht via Code zur Verfügung...
Bitte warten ..
Mitglied: ahstax
28.11.2013 um 16:14 Uhr
Ich hab da mal noch was gefunden...:
KLICK

ist dann bei mir so geworden:

01.
... 
02.
Dim value1 As String = .Attachments.item(i).PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E") 
03.
Dim value2 As Long = .Attachments.item(i).PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x37140003") 
04.
  
05.
   If (Not (value1) Is Nothing) Then 
06.
      If (Not (value2) = 4) Then 
07.
          '  "echter" Anhang 
08.
...


Allen beteiligten herzlichen Dank!!!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Outlook & Mail
gelöst Eingebundene Postfächer fragen alle paar Tage nach Benutzerdaten (6)

Frage von crossh4ir zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...