Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mail aus Excel per VBA verschlüsseln

Forumthread: Mail aus Excel per VBA verschlüsseln

Mail aus Excel per VBA verschlüsseln
26.09.2016 12:36:10
Georg
Hallo zusammen,
ich habe ein Programm geschrieben, dass mit Mails anhand einer Outlook Vorlage mit den entsprechenden Verteiler, Betreff und Text erstellt. Soweit so gut. Kann ich es über VBA steuern, dass das Mail auch verschlüsselt ist? Ich denke da so an ".enchrypted" oder so im With Block. Geht sowas?
Ich hab im Forum dazu nur eine Diskussion von Andi und Reinhard aus 2003 gefunden. Wäre klasse, wenn mich da jemand aufgleisen könnte!
Danke und Gruß
Georg
Sub Mail_bauen()
vZeileMax = Range("B8").End(xlDown).Row
vZeilePfad = Range("B8:B" & vZeileMax + 300).Find(what:="Pfad").Row       ' Def. der Zeile  _
in der der Pfad steht
vZeileVorlage = Range("B8:B" & vZeileMax + 300).Find(what:="Vorlage").Row ' Def. der Zeile  _
in der die Vorlage steht
vZeileTo = Range("B8:B" & vZeileMax + 300).Find(what:="an").Row          ' Def. der Zeile  _
in der der Verteiler steht
vZeileSubject = Range("B8:B" & vZeileMax + 300).Find(what:="Betreff").Row ' Def. der Zeile  _
in der der Betreff steht
'XX -- Mail aus Vorlage (.ost) erstellen
vPfad = ActiveWorkbook.Sheets("Tabelle1").Range(vSpalte & vZeilePfad) & _
ActiveWorkbook.Sheets("Tabelle1").Range(vSpalte & vZeileVorlage)    ' Definition  _
des Pfades+Namen der .ost
Set OutApp = CreateObject("Outlook.Application")                            ' Outlook  _
starten
Set vNachricht = OutApp.CreateItemFromTemplate(vPfad)                       ' .ost aufrufen
With vNachricht
.To = Range(vSpalte & vZeileTo)
.Subject = Range(vSpalte & vZeileSubject)
.display
End With
Set OutApp = Nothing
Set vNachricht = Nothing
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mail aus Excel per VBA verschlüsseln
26.09.2016 12:57:59
EtoPHG
Hallo Georg,
Was hat dein Problem mit Excel zu tun?
Am Rande vielleicht mit VBA, aber grundsätzlich musst du dir wohl überlegen, mit welcher Software du die Mail verschlüsseln willst und ob der/die Empfänger auch über die nötige Infrastruktur für die Entschlüsselung verfügen. Bevor du das nicht geklärt hast, macht es keinen Sinn dir irgendwas hinzuwerfen.
Im Übrigen: Was ist / soll uns With Block helfen? und was heisst: ".enchrypted, ist das eine ägyptische Eigenschaft von Mumien ;-)
Gruess Hansueli
Anzeige
AW: Mail aus Excel per VBA verschlüsseln
26.09.2016 14:13:29
Georg
Hallo Hansueli,
naja, das ganze hat mit Excel zu tun, dass ich die Empfängerliste in Excel pflege, hier auf einen Knopf drücke und das Mail per VBA erstellt wird. Das geht dann in Outlook auf. Die Infrastruktur der Ver- und Entschlüsselung ist nicht das Problem, da alles firmenintern läuft. Da hat eh jeder alles was er benötigt.
Mit dem with Block hatte ich gehofft, dass man gerade hier einen Befehl einbauen kann, da hier das Mail mit Adressen, Betreff, Text, etc. ausstaffiert wird. Drum hatte ich den Programmcode eingebaut.
"encrypted" heißt einfach nur "verschlüsselt", aber das sind die Botschaften der alten Mumien ja auch oft.. ;-) Aaaahh - jetzt hab ich's -- okokok da war ein "h" zu viel. Menno - so genau bitte auch wieder nicht sein!
Gibt es denn sonst vielleicht ein reines VBA Forum, in das die Frage besser hingehört? Hier wird doch eigentlich auch sehr viel mit VBA gemacht und ich kenne nur Herber als "meine Bibel"...
Danke für jede Hilfe
Gruß Georg
Anzeige
AW: Mail aus Excel per VBA verschlüsseln
28.09.2016 15:54:40
Georg
Hallo zusammen,
hab gerade gesehen, dass der Thread nicht mehr als "offen" gemarkert war. Vielleicht kann mir ja jemand helfen.. ?
Vielen Dank
Gruß Georg
AW: Mail aus Excel per VBA verschlüsseln
30.09.2016 03:05:40
Michael
Hi Georg,
wenn die mail sowieso in OL "aufgeht" (.Display), kann der Anwender ja vor dem Versenden immer noch auf den Verschlüsselungsbutton klicken. Dazu muß halt dann firmenweit einer der zwei Standards in OL installiert/verfügbar sein (S-MIME, pgp).
Ansonsten kann man einen Anhang ja z.B. beim Komprimieren verschlüsseln (7zip), hat aber bei so einer Lösung immer das Problem, wie man das Passwort weitergeben will: wenn Du eine mail durchs WWW schickst mit einer verschlüsselten Datei und dem Text "Das Passwort für diese Datei heißt übrigens: sfpop!!§!,
lachen sich die "Angreifer" einen ab.
Schöne Grüße,
Michael
Anzeige
;
Anzeige

Infobox / Tutorial

E-Mail aus Excel per VBA verschlüsseln


Schritt-für-Schritt-Anleitung

Um eine E-Mail aus Excel über VBA zu erstellen und diese mit einer Verschlüsselung zu versehen, kannst du die folgende Schritt-für-Schritt-Anleitung verwenden. Stelle sicher, dass du Outlook 2016 oder eine andere kompatible Version installiert hast.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Mail_bauen()
       Dim vZeileMax As Long
       Dim vZeilePfad As Long
       Dim vZeileVorlage As Long
       Dim vZeileTo As Long
       Dim vZeileSubject As Long
       Dim vPfad As String
       Dim OutApp As Object
       Dim vNachricht As Object
    
       vZeileMax = Range("B8").End(xlDown).Row
       vZeilePfad = Range("B8:B" & vZeileMax + 300).Find(what:="Pfad").Row       
       vZeileVorlage = Range("B8:B" & vZeileMax + 300).Find(what:="Vorlage").Row 
       vZeileTo = Range("B8:B" & vZeileMax + 300).Find(what:="an").Row          
       vZeileSubject = Range("B8:B" & vZeileMax + 300).Find(what:="Betreff").Row 
    
       vPfad = ActiveWorkbook.Sheets("Tabelle1").Range("A" & vZeilePfad) & _
       ActiveWorkbook.Sheets("Tabelle1").Range("A" & vZeileVorlage)    
    
       Set OutApp = CreateObject("Outlook.Application")                            
       Set vNachricht = OutApp.CreateItemFromTemplate(vPfad)                       
    
       With vNachricht
           .To = Range("A" & vZeileTo)
           .Subject = Range("A" & vZeileSubject)
           .Display
           ' Hier die Verschlüsselung hinzufügen, falls erforderlich
           '.Encrypt   ' Beispielbefehl, um E-Mail zu verschlüsseln
       End With
    
       Set OutApp = Nothing
       Set vNachricht = Nothing
    End Sub
  4. Passe den Code an deine Bedürfnisse an, insbesondere die Bereichsangaben in Range(...).

  5. Führe das Makro aus, um die E-Mail zu erstellen. Denke daran, dass eine manuelle Verschlüsselung in Outlook erforderlich sein kann (z.B. durch Klicken auf den Verschlüsselungsbutton).


Häufige Fehler und Lösungen

  • Fehler: Outlook öffnet nicht

    • Stelle sicher, dass Outlook korrekt installiert und konfiguriert ist. Prüfe auch, ob die Sicherheitsrichtlinien deiner Firma das Öffnen von Outlook über VBA erlauben.
  • Fehler: E-Mail wird nicht gesendet

    • Wenn du die E-Mail nicht automatisch senden möchtest, verwende .Display im Code. Für den Versand musst du .Send verwenden, jedoch sollte der Benutzer die E-Mail vor dem Senden prüfen.
  • Fehler: Verschlüsselung funktioniert nicht

    • Stelle sicher, dass die Benutzer, an die du die E-Mail sendest, die nötige Infrastruktur für die Entschlüsselung haben (S-MIME oder PGP).

Alternative Methoden

Wenn du eine E-Mail mit einem Anhang verschlüsseln möchtest, kannst du folgende Alternativen in Betracht ziehen:

  • Anhang mit 7-Zip komprimieren: Du kannst den Anhang vor dem Versenden komprimieren und dabei ein Passwort setzen. Achte darauf, das Passwort sicher zu kommunizieren, um mögliche Sicherheitsrisiken zu vermeiden.

  • HTML-Verschlüsselung: Wenn du HTML-Inhalte verschlüsseln möchtest, kannst du eine HTML-Verschlüsselungslösung verwenden. Es gibt verschiedene Tools und Bibliotheken, die dir dabei helfen können.


Praktische Beispiele

Angenommen, du möchtest eine E-Mail mit einem verschlüsselten Anhang versenden. Hier ist ein einfaches Beispiel:

  1. Komprimiere den Anhang mit 7-Zip und setze ein Passwort.
  2. Verwende den folgenden VBA-Code, um die E-Mail zu erstellen:

    Sub MailMitAnhang()
       Dim OutApp As Object
       Dim vNachricht As Object
    
       Set OutApp = CreateObject("Outlook.Application")
       Set vNachricht = OutApp.CreateItem(0)
    
       With vNachricht
           .To = "empfaenger@beispiel.de"
           .Subject = "Verschlüsselte E-Mail"
           .Body = "Hier ist der verschlüsselte Anhang."
           .Attachments.Add "C:\Pfad\zu\deinem\Anhang.zip" ' Achte darauf, dass der Anhang verschlüsselt ist
           .Display
       End With
    
       Set OutApp = Nothing
       Set vNachricht = Nothing
    End Sub

Tipps für Profis

  • Nutze die VBA-Fehlerbehandlung, um sicherzustellen, dass dein Skript auch bei unerwarteten Fehlern nicht abstürzt. Füge On Error Resume Next hinzu, um Fehler zu ignorieren, und behandle sie später.

  • Dokumentiere deinen Code gut, damit andere (oder du selbst in der Zukunft) schnell verstehen, was jeder Teil des Codes macht.

  • Teste dein Skript immer in einer sicheren Umgebung, bevor du es im Produktivbetrieb einsetzt.


FAQ: Häufige Fragen

1. Wie kann ich eine E-Mail automatisch aus Excel senden?
Du kannst die .Send-Methode anstelle von .Display im VBA-Code verwenden, um die E-Mail direkt zu senden.

2. Was muss ich tun, um eine E-Mail mit Passwort zu verschlüsseln?
Du kannst den Anhang mit einem Programm wie 7-Zip verschlüsseln und den E-Mail-Text separat versenden. Achte darauf, das Passwort sicher zu übermitteln.

3. Funktioniert das in jeder Excel-Version?
Die oben genannten Beispiele sind für Excel in Verbindung mit Outlook 2016 optimiert, sollten aber auch in neueren Versionen funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige