E-Mail-Archivierung

Informationen effizient organisieren.
Mit der Dr.DOC Komplettlösung für revisionssichere Archivierung.


  Anfragen Preise berechnen Demo anfordern Mehr über Dr.DOC erfahren


E-Mail-Archivierung (IMAP)

E-Mail-Archivierung (IMAP)

Hinweis:

Mit Dr.DOC gibt es drei E-Mail-Archivierungs-Möglichkeiten. In dieser Doku geht es um die E-Mail-Archivierung via Dr.DOC Web.

Produkt Modul Besonderheiten
Dr.DOC Netzwerk (C/S) Dr.DOC Outlook Plugin Vorgangsbezogene (oder automatische) Archivierung in MS Outlook/Plugin via Dr.DOC Netzwerk Client
Dr.DOC Netzwerk (C/S) Dr.DOC Server Import Automatisierte Archivierung am Dr.DOC Netzwerk Server via Dateiimport
Dr.DOC Web Dr.DOC Web E-Mail-Archivierung (IMAP) Automatisierte, regelbasierte Archivierung am Dr.DOC Web Server via IMAP

Ziel der E-Mail-Archivierung via IMAP ist es, E-Mails automatisiert (unbeaufsichtigt) und regelbasiert zu archivieren. Um die E-Mail-Archivierung regelbasiert zu steuern, werden folgende Einstellungen im Dr.DOC Web Konfigurationsarchiv „node“ ausgelesen:

Type: EmailAccountConfigWebNode Name: config/email-account/<E-Mail-Account-Name>

Beispel: Name: config/email-account

Die Einstellungen werden beim Start des Dr.DOC Web Servers neu geladen. Damit eine Änderung wirksam wird, muss unter Dr.DOC Web/Einstellungen/E-Mail-Archivierung/Button "Einstellungen neu laden" geklickt werden.

Ändern der Berechtigungen: Aus Sicherheitsgründen sollte der Node Config Datensatz nur für den Server und berechtigte Administratoren zugreifbar sein, indem der User auf "System-Group" gesetzt wird.

Eine Vererbung über den Prototype-Namen ist möglich; z.B. auf config/email-account, um bestimmte Einstellungen für alle Konten anzuwenden. Wenn Property Values aus dem Prototype geladen werden sollen, muss das „Inherit“ Flag in der Property gesetzt sein. Damit ist es möglich, die Einstellungen, die für alle User gültig sind, in den Node "config/email-account" abzuspeichern und in den Konten-Nodes (z.B. "config/email-account/mustermann") den Prototype Name auf "config/email-account" setzen und nur die Properties zu setzen, die überschrieben werden sollen (z.B. "Email", "Password", "Archive_SourceImapFolders", "Archive_Target_FieldPreselectionName").

Alle Properties haben den Type "ConfigWebNode".

Property Type Property Name Beschreibung Mögliche Werte
ConfigWebNode Enabled Gibt an, ob die Konfiguration aktiv ist true, false
ConfigWebNode Email E-Mail-Adresse (z.B. test@mail.de)
ConfigWebNode Password Passwort für SMTP/IMAP.
Nach dem erstmaligen Eintragen wird das Passwort verschlüsselt.
ConfigWebNode CheckSslCert Gibt an, ob das TLS/SSL Zertifikat des E-Mail-Servers geprüft werden soll true, false
ConfigWebNode ImapHost Hostname des IMAP Servers (z.B. mail.de)
ConfigWebNode ImapSSL Gibt an, ob eine verschlüsselte TLS/SSL Verbindung zum IMAP Server hergestellt werden soll true, false
ConfigWebNode ImapPort IMAP Portnummer (z.B. 993)
ConfigWebNode SmtpHost Hostname des SMTP Servers (z.B. mail.de)
ConfigWebNode SmtpSSL Gibt an, ob eine verschlüsselte TLS/SSL Verbindung zum SMTP Server hergestellt werden soll
ConfigWebNode SmtpPort SMTP Portnummer (z.B. 587)
ConfigWebNode Archive_Action
  • "Tag":
    • Markiert die E-Mail bei erfolgreicher Archivierung mit dem Tag/Keyword, welches in der Property "Archive_SuccessTag" angegeben wurde;
    • Dubletten werden mit dem Wert markiert, der in der Property "Archive_DuplicateTag" angegeben wurde.
  • "Move":
    • Verschiebt die E-Mail in ein Unterverzeichnis mit gleichem Namen wie das Quell-Verzeichnis.Die IMAP-Verzeichnisse werden automatisch erstellt und dürfen keinen "." oder "/" im Pfad-Segment enthalten. Der Verzeichnisname "Dr. Doc" wäre also ungültig.
    • Bei erfolgreicher Archivierung in das IMAP Verzeichnis, welches in der Property "Archive_SuccessImapFolder" angegeben wurde. Beispiel: <Archive_SuccessImapFolder>/<Source-Folder>
    • Dubletten werden in das IMAP Verzeichnis verschoben, welches in der Property "Archive_DuplicateImapFolder" angegeben wurde. Beispiel: <Archive_DuplicateImapFolder>/<Source-Folder>
    • Bei einem Fehler in das Verzeichnis, welches in der Property "Archive_ErrorImapFolder" angegeben wurde. Beispiel: <Archive_ErrorImapFolder>/<Source-Folder>
  • "Delete":
    • Löscht erfolgreich archivierte E-Mails
Tag, Move, Delete
ConfigWebNode Archive_SuccessTag Tag/Keyword für Property "Archive_Action" mit dem Wert "Tag"; bei erfolgreicher Archivierung;
Der Wert darf bei vielen IMAP Servern keine Leerzeichen oder Punkte enthalten
ConfigWebNode Archive_DuplicateTag Tag/Keyword für Property "Archive_Action" mit dem Wert "Tag"; bei fehlgeschlagener Archivierung wegen Eingabedublettenprüfung (Schlüsselfeld "DS" mit Feldauswahl für Dublettenprüfung);
Der Wert darf bei vielen IMAP Servern keine Leerzeichen oder Punkte enthalten
ConfigWebNode Archive_SuccessImapFolder Basis IMAP Verzeichnis für Property "Archive_Action" mit dem Wert "Move"; bei erfolgreicher Archivierung
ConfigWebNode Archive_DuplicateImapFolder Basis IMAP Verzeichnis für Property "Archive_Action" mit dem Wert "Move"; bei fehlgeschlagener Archivierung wegen Eingabedublettenprüfung (Schlüsselfeld "DS" mit Feldauswahl für Dublettenprüfung)
ConfigWebNode Archive_ErrorImapFolder Basis IMAP Verzeichnis für Property "Archive_Action" mit dem Wert "Move"; bei fehlgeschlagener Archivierung wegen eines Fehlers
ConfigWebNode Archive_SourceImapFolders Quell IMAP Verzeichnis(se), in dem die E-Mails archiviert werden sollen.
Pro Zeile ein Wert und darf nicht mit / beginnen.
Es können auch Wildcards mit "*" angegeben und UND-Bedingungen mit "&" angegeben werden.
z.B. "INBOX"
oder "Eingangsrechnung"
ConfigWebNode Archive_Target_UsermanagerName Ziel-Benutzerverwaltung
Pfad zur Usermanager *.BVD Datei
ConfigWebNode Archive_Target_ArchiveName Ziel-Archiv
Archiv-Name oder vollständiger Pfad zur KOMM\SERVER\*.da Datei
ConfigWebNode Archive_Target_FieldPreselectionName Anzuwendende Feldvorbelegung beim Erstellen des Datensatzes im Archiv "Archive_Target_ArchiveName".
Über die gesetzten Feldwerte aus der Feldvorbelegung und den übernommenen E-Mail Feldern (z.B. ASCII Import-Definition "DD_EMAIL") kann eine rekursive Archivierung getriggert werden.
ConfigWebNode Archive_Target_Duplicate Gibt an, wie Dubletten beim Erstellen eines Dokuments behandelt werden sollen:
  • "Drop": Dubletten verwerfen
  • "Replace": Dubletten ersetzen (Feldwerte können gelöscht werden)
  • "Change": Dublette ändern (nur gesetzte Feldwerte werden übertragen)
Drop, Replace, Change
ConfigWebNode OAuth2_ClientId MS 365 / AAD: "Overview" -> "Aplication (client) ID"
ConfigWebNode OAuth2_Authority MS 365 / AAD: "Overview" -> "Directory (tenant) ID" z.B. https://login.microsoftonline.com/{tenantId}/v2.0
ConfigWebNode OAuth2_Scopes MS 365 / AAD: "API permissions" -> "+Add a permission": Mehrere Einträge möglich (zeilenweise), z.B.:
https://outlook.office365.com/.default
Oder
openid
email
offline_access
https://outlook.office.com/IMAP.AccessAsUser.All
Oder in älteren Konfigurationen:
https://ps.outlook.com/.default
ConfigWebNode OAuth2_Secret MS 365 / AAD: "Certificates & secrets" -> "Client secrets" -> "+ New client secret": Text in Spalte "Value" abspeichern

Microsoft Office 365

Microsoft 365 benötigt einen OAuth2 Login. Das ist leider unnötig kompliziert.

  1. Microsoft Azure Active Directory IAM (AAD IAM starten und App hinzufügen mit IMAP Rechten) Siehe dazu: https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app
    1. https://portal.azure.com/#view/Microsoft\_AAD\_IAM/ActiveDirectoryMenuBlade/\~/Overview
      1. Register new App (+): https://portal.azure.com/#view/Microsoft\_AAD\_RegisteredApps/CreateApplicationBlade/isMSAApp\~/false
      2. "Authentication"
        1. "Platform configuration", "+ Add a platform" -> "Mobile and desktop applications" Redirect URIs: "http://localhost"
        2. "Advanced settings" -> "Allow public client flows": Yes
      3. "Certificates & secrets" -> "Client secrets" -> "+ New client secret": Text in Spalte "Value" abspeichern
      4. "API permissions" -> "+Add a permission" (mit "*" sind optional, wenn E-Mails auch versendet werden sollen)
        1. API "Microsoft Graph" -> "Delegated permission"
          1. OpenId permissions
            1. email
            2. offline_access
            3. openid
          2. SMTP
            1. * SMTP.Send
          3. User
            1. User.Read
          4. IMAP
            1. IMAP.AccessAsUser.All
        2. API "Office 365 Exchange Online" -> "APIs my organization uses" -> search "Office 365 Exchange Online" -> "Application permissions"
          1. IMAP
            1. IMAP.AccessAsApp
          2. Mail
            1. * Mail.Read
            2. * Mail.Send
          3. SMTP
            1. * SMTP.SendAsApp
        3. Check "Grant admin consent for <Tenant-Name>"
      5. Besitzer der App festlegen via Menü "Owners"
      6. Evtl.: Benutzer der App hinzufügen:
        1. https://portal.azure.com/?feature.msaljs=true#view/Microsoft\_AAD\_UsersAndTenants/UserManagementMenuBlade/\~/AllUsers
        2. Benutzer wählen
        3. "Authentication methods" ->
      7. "Overview" Access Points abspeichern (siehe 2. unten)
        1. Application (client) ID
        2. Directory (tenant) ID
  2. In den Einstellungen für E-Mail-Archivierung folgenden Eigenschaften setzen:
    • OAuth2_ClientId = siehe "Overview" -> "Aplication (client) ID"
    • OAuth2_Authority = siehe "Overview" -> "Directory (tenant) ID": https://login.microsoftonline.com/<Dierctory (tenant) ID>/oauth2/v2.0/authorize
    • OAuth2_Scopes = siehe "API Permissions":
      • openid email offline_access https://outlook.office.com/IMAP.AccessAsUser.All
    • OAuth2_Secret = siehe "Certificates & secrets" -> "Client secrets"

Variante A: Als Desktop App starten

  1. Die App DrDoc.WebServerService.exe als normale Anwendung starten und nicht als Dienst
  2. Es erscheint im Console Fenster eine Meldung "Device Code [...]". Bitte kopieren Sie den Link daneben in den Webbrowser und geben Sie den Code im Webbrowser ein. Alternativ: Es öffnet sich automatisch ein Web Browser Fenster.
  3. Bitte mit entsprechendem Konto anmelden, um der E-Mail-Archivierung die nötige Berechtigung zu erteilen.
  4. Wenn die Anmeldung erfolgreich war, kann Dr.DOC Web wieder als Dienst verwendet werden.

Variante B: PowerShell Script als Admin:

$AppId = "32d78307-96a6-4d33-k871-7d65d7ae345d"
$TenantId = "485ed665-e9ea-4569-xc67-4152462107fe"
$Email = "mail@drdoc.onmicrosoft.com"
$DisplayName = "Some principal name for IMAP/POP3"

Install-Module -Name ExchangeOnlineManagement
Import-module ExchangeOnlineManagement
Connect-ExchangeOnline -Organization $TenantId

# Install-Module -Name AzureAD
# Import-module AzureAD
# Connect-AzureAd -Tenant $TenantId

($Principal = Get-AzureADServicePrincipal -filter "AppId eq '$AppId'")
$PrincipalId = $Principal.ObjectId

# New-ServicePrincipal -AppId $AppId -ObjectId <OBJECT_ID>
New-ServicePrincipal -AppId $AppId -ServiceId $PrincipalId -DisplayName $DisplayName
 
Get-ServicePrincipal | fl

Add-MailboxPermission -Identity $Email -User $PrincipalId -AccessRights FullAccess

Diese Website verwendet aus technischen Gründen Cookies für das Caching bzw. Bereitstellen von Session-bezogenen Inhalten. Diese Website verwendet Cookies und nutzt Website Tracking-Technologien von Dritten, um ihre Dienste anzubieten, stetig zu verbessern und Werbung entsprechend der Interessen der Nutzer anzuzeigen.
Ich bin mit der Datenschutzerklärung einverstanden und kann meine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen oder ändern.
Aus Gründen der Vernunft und besseren Lesbarkeit verzichten wir auf die gleichzeitige Verwendung der Sprachformen männlich und weiblich. Sämtliche Personenbezeichnungen gelten daher gleichermaßen für alle Geschlechter.