Top-Themen

Aktuelle Themen (A bis Z)

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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Outlook 2010 VBA für JPG Bilder komprimieren und Senden

Mitglied: Zunaras

Zunaras (Level 1) - Jetzt verbinden

18.09.2013 um 10:47 Uhr, 4656 Aufrufe, 15 Kommentare

Schönen guten Tag,

im Outlook 2010 kann man in der Nachricht über Datei -> Informationen -> Größe von Bildern beim senden anpassen.

Da das Umschalten bei den Mitarbeitern immer vergessen wird, wollte ich mal nachfragen, ob man das über VBA realisieren kann.
Also bei Klick auf Senden nach JPG im Anhang suchen und diese automatisch verkleinern und Nachricht absenden.

Wir arbeiten nicht mit Exchange.

Viele Grüße
Zunaras
Mitglied: colinardo
18.09.2013, aktualisiert 20.09.2013
Hallo Zunaras,
du könntest die User daran gewöhnen diese Methode anzuwenden um Bilder zu verschicken. Im Explorer > Bilder markieren > Rechtsklick auf die Bilder > Senden an > E-Mail-Empfänger. Dann müssen sie die Bildgröße im Dialog angeben bevor die Mail angezeigt wird.
Die Option die du meinst lässt sich nicht via VBA steuern, man müsste dazu dann schon z.B. eine native .NET-Bibliothek benutzen die die Bilder verkleinert und wieder an die Mail anhängt. Dazu musst du aber entweder ein Plugin schreiben oder eine COM-Bibliothek mit der entsprechenden Funktionen registrieren, oder die Windows API-Funktionen nutzen.
Werde bei Zeiten mal schauen ob sich da was dazu basteln lässt...

Grüße Uwe
Bitte warten ..
Mitglied: Zunaras
18.09.2013 um 12:21 Uhr
Hallo colinardo,

vielen Dank für die Rückmeldung.

Das mit dem "senden an" habe ich hier bereits angesprochen. Die Option hat allerdings auch wieder kleinere Probleme.
Es öffnet sich die neue Nachricht. Leider kann man dann die Anhänge nicht sehen. Die Zeile unter dem Betreff fehlt komplett, obwohl die Datei vorhanden ist. Man kann sie wieder sichtbar machen, indem man unten rechts den Personenbereich erweitert. Ich habe das bisher auf jedem Client so gesehen.
Man kann die Anhänge zur Kontrolle nicht mit einem Doppelklick oder sonst wie öffnen.
Das Nachrichten-Fenster hat Priorität. Man kommt nicht an das Hauptfenster von Outlook.
Beim Antworten einer Nachricht entfällt das "senden an".
Wenn die Nachricht verschickt wurde, landet sie in der lokalen Outlook.pst und nicht im IMAP-Konto. Selbst eine eingerichtete Regel zum automatischen Verschieben ins IMAP funktioniert nicht. Muss immer manuell geschehen.

Mehr fällt mir jetzt grad nicht ein.

Viele Grüße
Zunaras
Bitte warten ..
Mitglied: colinardo
18.09.2013, aktualisiert 25.04.2017
So, habe zum Thema mal was zusammengebaut...(funktioniert auch mit Outlook 2013)

Unten stehender Code funktioniert nur im Zusammenhang mit meinem folgendem Assembly (.NET 2.0) das ein COM-Objekt mit einer Funktion zum Ändern der Bildgröße bereitstellt.
Download des Assemblies (selbstextrahierendes RAR-Archiv mit Installationsfunktion)
  • Zuerst installiert man das Assembly als Admin - es ist ein selbsextrahierendes RAR-Archiv das nach dem entpacken fragt ob man es installieren will. (Wer mir nicht vertraut kann das Archiv mit WinRAR entpacken und findet dort den Quellcode des AutoIT-Installers - ich habe halt versucht es so einfach wie möglich für euch zu gestallten)
  • Der Code muss in Oulook im VBA-Editor (ALT-F11) in ThisOutlookSession eingefügt werden.
  • Die max. Bildgröße die die reduzierten Bilder haben sollen legt man in Zeile 4 fest. Im Beispiel werden die Bilder auf 800 Pixel verkleinert, je nachdem welche Bildseite länger ist.
Kurz zur Vorgehensweise des Scripts: Nur Attachments mit den Dateierweiterungen "jpg", "jpeg", "png", "bmp", "gif", "tiff", "tif" werden vor dem Sendevorgang in einen temporären Ordner gesichert, dann mit der benutzerdefinierten COM-Funktion verkleinert, danach die ursprünglichen Attachments entfernt (natürlich nur die Bilder andere Attachments bleiben erhalten) und die verkleinerten Bilder wieder hinzugefügt. Da beim Speichervorgang der Original-Attachments Outlook Dateireferenzen auf diese Dateien im Speicher hält, kann dieser Ordner erst beim nächsten Start von Outlook gelöscht werden. Um Duplikate in diesem Ordner zu vermeiden, werden die Dateinamen mit einem Base36 kodierten String im Dateinamen ergänzt abgespeichert.

Eine Abfrage für den Benutzer ob er die Bilder verkleinert senden will habe ich noch nicht eingebaut, werde es aber bei Zeiten nachholen

Grüße Uwe
Bitte warten ..
Mitglied: Zunaras
19.09.2013 um 07:43 Uhr
Hallo colinardo,

ich muss mich bei Dir bedanken. Das ist ja echt der Hammer !
Funktioniert prima!

Beim probieren ist mir aufgefallen, das die verkleinerten JPG nicht im Temp\img_res Ordner landen, sondern im Temp. Und werden wohl dementsprechend nicht gelöscht - wenn so vorgesehen.


Viele Grüße
Zunaras
Bitte warten ..
Mitglied: colinardo
19.09.2013 um 08:20 Uhr
Zitat von Zunaras:
Hallo colinardo,
Beim probieren ist mir aufgefallen, das die verkleinerten JPG nicht im Temp\img_res Ordner landen, sondern im Temp. Und werden
wohl dementsprechend nicht gelöscht - wenn so vorgesehen.
kann aus Prinzip eigentlich nicht sein, die Variablen sind alle korrekt gesetzt! Vielleicht meinst du den "img_orig" Ordner dort landen die Originale, welche erst bei einem Neustart von Outlook gelöscht werden. Vielleicht hast du im Temp-Ordner noch alte Dateileichen liegen.
Kann dein Verhalten hier auf mehreren Systemen nicht nachvollziehen.

Grüße Uwe
Bitte warten ..
Mitglied: Zunaras
19.09.2013, aktualisiert um 09:25 Uhr
Hallo,

wenn ich in %temp% reinschaue, finde ich direkt dort die verkleinerten und versendeten jpg, Es kommen nach jedem Senden auch neue hinzu. Ich habe bislang noch keinen "img_res" Odner gefunden
Der "img_orig" Ordner existiert - bis zum nächsten Neustart von Outlook.

EDIT: Thunderbird macht das!! Ich habe von Outlook auf ein anderes Konto geschickt, das mit Thunderbird läuft. Beim Aufruf des Bildes legt TB das Bild in den %Temp% ab.
Sorry! Ist alles gut.



Jetzt habe ich eine Fehlermeldung bekommen beim versenden einer eMail, wo ich ein kleines Bild zwischen den Text eingebunden habe. Diese soll/brauch er nicht komprimieren.

Der Debugger springt hier in die 2. Zeile:
Grüße
Zunaras
Bitte warten ..
Mitglied: colinardo
19.09.2013, aktualisiert um 09:56 Uhr
Zitat von Zunaras:
Ich habe bislang noch keinen "img_res" Odner gefunden
Den wirst du auch nicht sehen, denn sobald die Bilder alle an die Mail angehängt wurden wird der auch sogleich wieder gelöscht, das geht sehr schnell. Dadurch das Outlook beim Anhängen der Bilder diese sowieso in einen eigenen temp-Ordner kopiert sind sie obsolet.
Jetzt habe ich eine Fehlermeldung bekommen beim versenden einer eMail, wo ich ein kleines Bild zwischen den Text eingebunden habe.
Diese soll/brauch er nicht komprimieren.
Diese Inline-Bilder werden bereits berücksichtigt und auch von der Bearbeitung ausgeschlossen.
Der Debugger springt hier in die 2. Zeile:
Stimmt da habe ich noch eine Überprüfung vergessen das überhaupt Bilder bearbeitet wurden, dadurch war das Array(arrDel) leer und es kam ein "Index out of Bounds" - habe es oben korrigiert...

Grüße Uwe
Bitte warten ..
Mitglied: Zunaras
19.09.2013 um 10:56 Uhr
Hallo,

ich bedanke mich vielmals für Deine Hilfe
Das hat mir wahnsinnig geholfen!

Viele liebe Grüße
Zunaras
Bitte warten ..
Mitglied: colinardo
19.09.2013, aktualisiert 25.04.2017
Habe den obigen Code noch robuster gemacht und noch erweitert durch einen Dialog, in dem der Nutzer die Möglichkeit hat zu bestimmen ob die Bilder reduziert werden und wenn ja, in welcher Auflösung:

bb1a22ce4132d37388a5fb26bc6a27c2 - Klicke auf das Bild, um es zu vergrößern

Den Dialog könnt Ihr hier herunterladen -> Download
Um den Dialog einzubinden, Rechtsklick im VBA-Editor auf den Knoten Formulare > Importieren... und dann die runtergeladene entpackte Datei(*.frm) auswählen.

Zusätzlich muss die folgende Variable vor alle anderen Prozeduren ganz am Anfang von "ThisOutlookSession" eingesetzt werden:
Geänderter Code für "ThisOutlookSession"
Grüße Uwe
Bitte warten ..
Mitglied: Zunaras
19.09.2013 um 15:57 Uhr
Hallo nochmal und vielen Dank!

Wenn ich die Bilder als Originale senden möchte kommt ein Fehler.

Der Debugger springt in die 2. Zeile.

Grüße
Zunaras
Bitte warten ..
Mitglied: colinardo
19.09.2013, aktualisiert um 16:02 Uhr
dann hast du die zusätzliche öffentliche Variable :
nicht ganz an den Anfang von "ThisOutlookSession" eingefügt...(am besten in die erste Zeile) diese muss vor allen anderen Prozeduren stehen
und danach mal ein Neustart von Outlook.

Grüße Uwe
Bitte warten ..
Mitglied: Zunaras
20.09.2013 um 08:53 Uhr
Hallo,

hm. Schau mal bitte das Bild. Ist das so nicht richtig?

6dacf5f5dc95bd3a306d2c7973b9b01d - Klicke auf das Bild, um es zu vergrößern

Grüß
Zunaras
Bitte warten ..
Mitglied: colinardo
20.09.2013 um 09:34 Uhr
Ahhh, ich sehe deine Session heißt nicht "ThisOutlookSession" sondern "DieseOutlookSitzung" dann müssen diese beiden Prozeduren in der Form so heißen:
Grüße Uwe
Bitte warten ..
Mitglied: Zunaras
20.09.2013 um 10:05 Uhr
Das ist es gewesen. Funktioniert prima!

Ich danke Dir nochmals viele Male und wünsche ein schönes Wochenende.

Viele Grüße
Zunaras
Bitte warten ..
Mitglied: Zunaras
01.06.2018 um 10:28 Uhr
Hallo colinardo,

ich hoffe, ich darf meinen alten Betrag noch mal benutzen und Du liest das hier.

Und zwar bin ich vor einigen Wochen auf Outlook 2016 umgestiegen. Solange der Code im Projekt vorhanden ist, verhält sich Outlook etwas merkwürdig.
Das Bilder verkleinern funktioniert erst nach dem zweiten oder dritten Versuch. Sowie dasselbe beim Löschen von Anhängen. Beim Beantworten von eMail wird nicht immer im Posteingang vermerkt, dass hierauf geantwortet wurde (kein Hinweistext und Symbol). Auch das Verschieben der eMail in einen anderen Ordner funktioniert manchmal nicht, und es kommt ein Hinweis, weil die Nachricht angeblich verändert wurde.

Bei den Verweisen habe ich folgendes aktiviert.
screenshot (29) - Klicke auf das Bild, um es zu vergrößern

Ist hier ein Anpassung gegen eine Spende möglich?

siehe auch https://www.administrator.de/forum/bilder-pst-empfang-verkleinern-223063 ...

Viele Grüße
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Syntaxfehler VBA Access 2010
gelöst Frage von Dr.CornwallisDatenbanken6 Kommentare

Liebe Gemeinde, ich habe (schon wieder) einen Fehler im Code und ich komm einfach nicht drauf warum es nicht ...

Outlook & Mail

Illegale email-Absender mit VBa Script erfassen (Outlook 2010)

gelöst Frage von HScomputerOutlook & Mail12 Kommentare

Hallo, seit einiger Zeit gibt es wieder vermehrt Spammer, die mit Absender-Adressen wie Admin@vonwoauch.immer@sonstwo.her arbeiten, welche sich z.B. mit ...

Exchange Server

"Send on Behalf anstelle" von "Send as"

gelöst Frage von arduinoExchange Server3 Kommentare

Hallo Wir haben auf unserem Exchange 2010 verschiedene Shared Mailboxen, die von Usern mit der Send-as Berechtigung genutzt werden. ...

VB for Applications

VBA Code Änderung Access 2010

gelöst Frage von Dr.CornwallisVB for Applications6 Kommentare

Liebe Gemeinde, ein Kollege hat mir einmal einen VBA Code zur Ermittlung des 1. und 5. Arbeitstags eines Monats ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Liste ungeschützter Pulse-VPN-Server veröffentlicht

Information von Visucius vor 1 TagErkennung und -Abwehr

bzw. Der tiefe Blick in die Profi-Administratoren-Welt ;-)

Windows 10

Windows Defender verhindert Telemetrieblocking via hosts-Datei

Information von BirdyB vor 1 TagWindows 102 Kommentare

Für diejenigen, die keine Daten an MS senden wollten, war die hosts-Datei manchmal eine Option.

Monitoring

Unabhängiger Ansatz - IoT (frei von Cloud- oder Appzwang) - Hier mit Schaltsteckdosen

Anleitung von beidermachtvongreyscull vor 4 TagenMonitoring2 Kommentare

Tach Kollegen, ich erzähle Euch mal von meiner Ausgangslage und den/m Problem(chen) Ich benutze ein NAS zur Lagerung meiner ...

Microsoft
Microsoft Advanced Threat Protection for Linux
Information von Dani vor 6 TagenMicrosoft

Microsoft Defender Advanced Threat Protection (MD ATP) support for Linux with kernel version 3.10.0-327 or later, including the following ...

Heiß diskutierte Inhalte
Off Topic
Arbeitsangebot
gelöst Frage von CoffeeJunkieOff Topic27 Kommentare

Da meine Firma massiv Stellen abbaut, bin ich auf der Suche nach einem neuen Job Basis Fakten: Abschuß Fisi ...

Exchange Server
Exchange Emailadresse deaktivieren oder löschen
Frage von imebroExchange Server15 Kommentare

Hallo, wir arbeiten mit einem Windows Server 2016 und Exchange 2016. Ein Mitarbeiter ist im März 2020 ausgeschieden und ...

Server
Verbindung zum Linux Server nicht möglich
gelöst Frage von it-fraggleServer13 Kommentare

Hallo zusammen, habe gerade ein sonderbares Problem auf dessen Lösung ich gerade nicht komme. Wir haben hier seit einigen ...

DSL, VDSL
Nutzung zweier VDSL Anschlüsse an einer TAE Dose
Frage von PullorDSL, VDSL10 Kommentare

Hi, ich würde gerne bei mir zu Hause einen zweiten VDSL Tarif (eines anderen Providers) als failover buchen. Nur ...

Weniger Werbung?
Administrator Magazin
07 | 2020 In der Juli-Ausgabe beleuchtet das IT-Administrator Magazin den Themenschwerpunkt "Monitoring & Support". Darin zeigt die Redaktion unter anderem, wie Sie die Leistung von Terminalservern im Blick behalten und welche Neuerungen das Ticketsystem OTRS 8 mitbringt. Auch die Überwachung von USV-Anlagen darf nicht fehlen. In ...