Compare commits
2 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
b07a3b3a87 | |
|
|
f620e96d23 |
26
README.md
26
README.md
|
|
@ -42,6 +42,32 @@ Windows-Anwendung zur bidirektionalen Synchronisation von Kontakten zwischen Mic
|
|||
5. Starface-Adressbuch und Outlook-Kontaktordner waehlen
|
||||
6. Speichern und "Jetzt synchronisieren"
|
||||
|
||||
### Outlook-Sicherheitsabfrage unterdruecken
|
||||
|
||||
Beim Zugriff auf Outlook-Kontakte zeigt Outlook standardmaessig einen
|
||||
Sicherheitsdialog ("Ein Programm versucht auf Ihre E-Mail-Adressinformationen
|
||||
zuzugreifen"). Dieser kann in den Einstellungen der App deaktiviert werden:
|
||||
|
||||
1. In der App auf "Einstellungen" klicken
|
||||
2. "Outlook-Sicherheitsabfrage automatisch erlauben" aktivieren
|
||||
3. Speichern
|
||||
|
||||
**Auf Domaenen-PCs / Terminal Servern:**
|
||||
|
||||
Die Outlook-Sicherheitseinstellungen werden dort per Gruppenrichtlinie (GPO)
|
||||
gesteuert und sind im Trust Center ausgegraut. In diesem Fall muss die App
|
||||
**einmalig als Administrator** gestartet werden, damit die Registry-Keys
|
||||
unter HKLM geschrieben werden koennen:
|
||||
|
||||
1. Rechtsklick auf die App -> "Als Administrator ausfuehren"
|
||||
2. Einstellungen -> "Outlook-Sicherheitsabfrage automatisch erlauben" aktivieren
|
||||
3. Speichern und App schliessen
|
||||
4. Outlook neu starten
|
||||
5. App kann danach wieder normal (ohne Admin) gestartet werden
|
||||
|
||||
Die Einstellung bleibt dauerhaft bestehen und gilt fuer alle Benutzer
|
||||
auf dem Rechner.
|
||||
|
||||
### Deinstallation
|
||||
|
||||
Ueber Windows Einstellungen -> Apps oder die Systemsteuerung.
|
||||
|
|
|
|||
|
|
@ -183,7 +183,21 @@ namespace StarfaceOutlookSync.Services
|
|||
|
||||
if (oc == null && sc != null)
|
||||
{
|
||||
// In Outlook geloescht -> in Starface auch loeschen
|
||||
// Outlook-Kontakt nicht gefunden.
|
||||
// Erst pruefen ob er vielleicht nur eine neue EntryID hat
|
||||
var reMatch = FindMatch(sc, outlookContacts.Where(c =>
|
||||
!processedOutlookIds.Contains(c.OutlookEntryId)).ToList());
|
||||
if (reMatch != null)
|
||||
{
|
||||
// Kontakt existiert noch in Outlook, nur EntryID geaendert
|
||||
Log($" EntryID geaendert, verknuepfe neu: {sc.DisplayName}");
|
||||
mapping.OutlookEntryId = reMatch.OutlookEntryId;
|
||||
processedOutlookIds.Add(reMatch.OutlookEntryId);
|
||||
newMappings.Add(mapping);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Wirklich geloescht -> in Starface auch loeschen
|
||||
if (profile.SyncDirection == SyncDirection.Both || profile.SyncDirection == SyncDirection.OutlookToStarface)
|
||||
{
|
||||
if (await starface.DeleteContactAsync(mapping.StarfaceId))
|
||||
|
|
@ -194,7 +208,6 @@ namespace StarfaceOutlookSync.Services
|
|||
}
|
||||
else
|
||||
{
|
||||
// Richtung erlaubt kein Loeschen -> Mapping behalten
|
||||
newMappings.Add(mapping);
|
||||
}
|
||||
continue;
|
||||
|
|
@ -202,20 +215,12 @@ namespace StarfaceOutlookSync.Services
|
|||
|
||||
if (oc != null && sc == null)
|
||||
{
|
||||
// In Starface geloescht -> in Outlook auch loeschen
|
||||
if (profile.SyncDirection == SyncDirection.Both || profile.SyncDirection == SyncDirection.StarfaceToOutlook)
|
||||
{
|
||||
if (_outlookService.DeleteContact(mapping.OutlookEntryId))
|
||||
{
|
||||
result.Updated++;
|
||||
Log($" Geloescht (SF->OL): {oc.DisplayName}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Richtung erlaubt kein Loeschen -> Mapping behalten
|
||||
newMappings.Add(mapping);
|
||||
}
|
||||
// Starface-Kontakt nicht gefunden.
|
||||
// Kann passieren wenn der Kontakt einem anderen Adressbuch gehoert.
|
||||
// NICHT loeschen, nur Mapping entfernen - wird in Phase 2/3 neu verknuepft
|
||||
Log($" Starface-Kontakt nicht in Liste (anderes Adressbuch?): {oc.DisplayName}");
|
||||
// Mapping verwerfen, Outlook-Kontakt als unverarbeitet belassen
|
||||
// damit er in Phase 2 neu zugeordnet oder erstellt werden kann
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue