@bobfrankston/rmfmail 1.2.256 → 1.2.258

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2722,10 +2722,12 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
2722
2722
  const isFlagged = !!msg.isFlagged;
2723
2723
  const reputation = msg.reputation;
2724
2724
  const reputationFlagged = !!(reputation && reputation.flagged);
2725
+ const reputationBlind = (reputation?.unavailable || []).map((u) => `${u.service}: ${u.reason}`).join("\n");
2725
2726
  const reputationText = reputationFlagged ? `\u26A0 ${reputation.listedCount} of ${reputation.checkedCount} reputation services flag <strong>${escapeText(senderDomain)}</strong> as <strong>${escapeText(reputation.verdict)}</strong> (${escapeText(reputation.sources.map((s) => s.service).join(", "))})` : "";
2726
2727
  const banner = document.createElement("div");
2727
2728
  banner.className = "mv-remote-banner" + (isFlagged ? " mv-remote-banner-flagged" : "") + (reputationFlagged ? " mv-remote-banner-reputation" : "");
2728
- banner.innerHTML = (isFlagged ? `<div class="mv-rb-flagged">\u26A0 Sender on your watch list (you marked this sender or domain suspicious)</div>` : "") + (reputationFlagged ? `<div class="mv-rb-reputation">${reputationText}</div>` : "") + `<div class="mv-rb-summary"><span class="mv-rb-toggle">&#x25B8;</span><span>Remote content blocked</span><span class="mv-rb-buttons"><button id="btn-load-remote">Load once</button><button id="btn-allow-sender" title="${escapeText(senderAddr)}">Always: ${escapeText(senderAddr)}</button>` + (senderDomain ? `<button id="btn-allow-domain" title="*@${escapeText(senderDomain)}">Always: *@${escapeText(senderDomain)}</button>` : "") + `</span></div><div class="mv-rb-details" hidden><div class="mv-rb-info"><div><span class="mv-rb-label">From:</span> ${escapeText(senderName ? `${senderName} <${senderAddr}>` : senderAddr)}</div>` + (deliveredTo ? `<div><span class="mv-rb-label">Delivered-To:</span> ${escapeText(deliveredTo)}</div>` : "") + (toAddr && toAddr !== deliveredTo ? `<div><span class="mv-rb-label">To:</span> ${escapeText(toAddr)}</div>` : "") + (returnPath && returnPath !== senderAddr ? `<div><span class="mv-rb-label">Return-Path:</span> ${escapeText(returnPath)}</div>` : "") + `</div>` + (deliveredTo || toAddr ? `<div class="mv-rb-actions"><button id="btn-allow-to">Always allow to: ${escapeText(deliveredTo || toAddr)}</button></div>` : "") + `<div class="mv-rb-actions"><button id="btn-flag-sender" class="mv-rb-flag-btn" title="${escapeText(senderAddr)}">${isFlagged ? "Unwatch" : "Watch (mark suspicious)"} sender</button>` + (senderDomain ? `<button id="btn-flag-domain" class="mv-rb-flag-btn" title="*@${escapeText(senderDomain)}">Watch domain *@${escapeText(senderDomain)}</button>` : "") + `</div><div class="mv-rb-actions"><button id="btn-edit-allowlist" title="View / edit the full allowlist">Edit allowlist\u2026</button></div></div>`;
2729
+ banner.innerHTML = (isFlagged ? `<div class="mv-rb-flagged">\u26A0 Sender on your watch list (you marked this sender or domain suspicious)</div>` : "") + (reputationFlagged ? `<div class="mv-rb-reputation"${reputationBlind ? ` title="Could not be checked \u2014
2730
+ ${escapeText(reputationBlind)}"` : ""}>${reputationText}</div>` : "") + `<div class="mv-rb-summary"><span class="mv-rb-toggle">&#x25B8;</span><span>Remote content blocked</span><span class="mv-rb-buttons"><button id="btn-load-remote">Load once</button><button id="btn-allow-sender" title="${escapeText(senderAddr)}">Always: ${escapeText(senderAddr)}</button>` + (senderDomain ? `<button id="btn-allow-domain" title="*@${escapeText(senderDomain)}">Always: *@${escapeText(senderDomain)}</button>` : "") + `</span></div><div class="mv-rb-details" hidden><div class="mv-rb-info"><div><span class="mv-rb-label">From:</span> ${escapeText(senderName ? `${senderName} <${senderAddr}>` : senderAddr)}</div>` + (deliveredTo ? `<div><span class="mv-rb-label">Delivered-To:</span> ${escapeText(deliveredTo)}</div>` : "") + (toAddr && toAddr !== deliveredTo ? `<div><span class="mv-rb-label">To:</span> ${escapeText(toAddr)}</div>` : "") + (returnPath && returnPath !== senderAddr ? `<div><span class="mv-rb-label">Return-Path:</span> ${escapeText(returnPath)}</div>` : "") + `</div>` + (deliveredTo || toAddr ? `<div class="mv-rb-actions"><button id="btn-allow-to">Always allow to: ${escapeText(deliveredTo || toAddr)}</button></div>` : "") + `<div class="mv-rb-actions"><button id="btn-flag-sender" class="mv-rb-flag-btn" title="${escapeText(senderAddr)}">${isFlagged ? "Unwatch" : "Watch (mark suspicious)"} sender</button>` + (senderDomain ? `<button id="btn-flag-domain" class="mv-rb-flag-btn" title="*@${escapeText(senderDomain)}">Watch domain *@${escapeText(senderDomain)}</button>` : "") + `</div><div class="mv-rb-actions"><button id="btn-edit-allowlist" title="View / edit the full allowlist">Edit allowlist\u2026</button></div></div>`;
2729
2731
  bodyEl.appendChild(banner);
2730
2732
  const summary = banner.querySelector(".mv-rb-summary");
2731
2733
  const details = banner.querySelector(".mv-rb-details");
@@ -13208,8 +13210,10 @@ optAiProofread?.addEventListener("change", () => {
13208
13210
  }
13209
13211
  });
13210
13212
  var optCheckReputation = document.getElementById("opt-check-reputation");
13213
+ var optSpamhausDqs = document.getElementById("opt-spamhaus-dqs");
13211
13214
  getSettings().then((s) => {
13212
13215
  if (optCheckReputation) optCheckReputation.checked = !!s.checkDomainReputation;
13216
+ if (optSpamhausDqs) optSpamhausDqs.value = s.spamhausDqsKey || "";
13213
13217
  }).catch(() => {
13214
13218
  });
13215
13219
  optCheckReputation?.addEventListener("change", () => {
@@ -13219,6 +13223,13 @@ optCheckReputation?.addEventListener("change", () => {
13219
13223
  }).catch(() => {
13220
13224
  });
13221
13225
  });
13226
+ optSpamhausDqs?.addEventListener("change", () => {
13227
+ getSettings().then((settings) => {
13228
+ settings.spamhausDqsKey = optSpamhausDqs.value.trim();
13229
+ saveSettings(settings);
13230
+ }).catch(() => {
13231
+ });
13232
+ });
13222
13233
  var optAutomarkRead = document.getElementById("opt-automark-read");
13223
13234
  var optAutomarkDelay = document.getElementById("opt-automark-delay");
13224
13235
  try {