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 | 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, 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". Es können mehrere Feldvorbelegungen angegeben werden, mit ";" separiert. Dynamisch: Über die gesetzten Feldwerte, u.a. aus der Feldvorbelegung und den übernommenen E-Mail Feldern (z.B. ASCII Import-Definition "DD_EMAIL"), kann eine rekursive Archivierung dynamisch getriggert werden. Statisch: Alternativ kann direkt ein Name für einen Doxument Encoder für rekursive Archivierung angegeben werden, z.B. config/recursive/RE PDF CreateDocument |
|
ConfigWebNode | Archive_Target_Duplicate | Gibt an, wie Dubletten beim Erstellen eines Dokuments behandelt werden sollen:
|
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 https://outlook.office.com/SMTP.Send 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 |
Hinweise und Anleitung zu Microsoft Office 365
Microsoft 365 benötigt einen OAuth2 Login. Das ist leider unnötig kompliziert.
Anbei eine Anleitung, wie man im Microsoft Azure Active Directory eine IMAP App registriert.
- 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
- https://portal.azure.com/#view/Microsoft\_AAD\_IAM/ActiveDirectoryMenuBlade/\~/Overview
- Register new App (+): https://portal.azure.com/#view/Microsoft\_AAD\_RegisteredApps/CreateApplicationBlade/isMSAApp\~/false
- "Authentication"
- "Platform configuration", "+ Add a platform" -> "Mobile and desktop applications"
Redirect URIs: "http://localhost
"- "Advanced settings" -> "Allow public client flows":
Yes
- "Certificates & secrets" -> "Client secrets" -> "+ New client secret": Text in Spalte "Value" abspeichern
- "API permissions" -> "+Add a permission" (mit "*" sind optional, wenn E-Mails auch versendet werden sollen)
- API "Microsoft Graph" -> "Delegated permission"
- OpenId permissions
offline_access
openid
- SMTP
- *
SMTP.Send
- User
User.Read
- IMAP
IMAP.AccessAsUser.All
- API "Office 365 Exchange Online" -> "APIs my organization uses" -> search "Office 365 Exchange Online" -> "Application permissions"
- IMAP
IMAP.AccessAsApp
- *
Mail.Read
- *
Mail.Send
- SMTP
- *
SMTP.SendAsApp
- Check "Grant admin consent for <Tenant-Name>"
- Besitzer der App festlegen via Menü "Owners"
- Evtl.: Benutzer der App hinzufügen:
- https://portal.azure.com/?feature.msaljs=true#view/Microsoft\_AAD\_UsersAndTenants/UserManagementMenuBlade/\~/AllUsers
- Benutzer wählen
- "Authentication methods" ->
- "Overview" Access Points abspeichern (siehe 2. unten)
- Application (client) ID
- Directory (tenant) ID
- 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
offline_access
https://outlook.office.com/IMAP.AccessAsUser.All
- OAuth2_Secret = siehe "Certificates & secrets" -> "Client secrets"
DrDoc.WebServerService.exe
als normale Anwendung starten oder als Dienst$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