Fix spam folder not found: add Junk Email to candidate names

This commit is contained in:
2026-04-12 09:59:58 +01:00
parent b5f8b7300b
commit 5c801cef4b

View File

@@ -333,7 +333,7 @@ public sealed partial class InboxMonitorService : BackgroundService
// 2. Search by name — try configured name plus common variants, two levels deep // 2. Search by name — try configured name plus common variants, two levels deep
var candidates = new HashSet<string>(StringComparer.OrdinalIgnoreCase) var candidates = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
{ {
_monitoring.SpamFolderName, "Junk", "Spam", "Junk E-mail", "Junk Mail", "Bulk Mail" _monitoring.SpamFolderName, "Junk", "Spam", "Junk Email", "Junk E-mail", "Junk Mail", "Bulk Mail"
}; };
foreach (var ns in client.PersonalNamespaces) foreach (var ns in client.PersonalNamespaces)
@@ -346,6 +346,9 @@ public sealed partial class InboxMonitorService : BackgroundService
try { topLevel = await root.GetSubfoldersAsync(false, ct); } try { topLevel = await root.GetSubfoldersAsync(false, ct); }
catch (Exception ex) { _logger.LogDebug(ex, "Could not list top-level folders"); continue; } catch (Exception ex) { _logger.LogDebug(ex, "Could not list top-level folders"); continue; }
_logger.LogDebug("Folder list for {Account}: {Folders}",
AccountName, string.Join(", ", topLevel.Select(f => f.FullName)));
foreach (var folder in topLevel) foreach (var folder in topLevel)
{ {
if (candidates.Contains(folder.Name)) if (candidates.Contains(folder.Name))
@@ -358,6 +361,9 @@ public sealed partial class InboxMonitorService : BackgroundService
try try
{ {
var sub = await folder.GetSubfoldersAsync(false, ct); var sub = await folder.GetSubfoldersAsync(false, ct);
if (sub.Count > 0)
_logger.LogDebug("Subfolders of {Parent}: {Subs}",
folder.FullName, string.Join(", ", sub.Select(f => f.FullName)));
var match = sub.FirstOrDefault(f => candidates.Contains(f.Name)); var match = sub.FirstOrDefault(f => candidates.Contains(f.Name));
if (match != null) if (match != null)
{ {