Commit inicial
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
"""Cálculo de huellas (fingerprints) para detectar mensajes ya migrados.
|
||||
|
||||
Los UID de IMAP no son estables entre servidores, así que la identidad de un
|
||||
mensaje se basa preferentemente en su ``Message-ID``. Cuando el mensaje no
|
||||
tiene ``Message-ID`` (raro, pero ocurre con correo mal formado), se recurre a
|
||||
una combinación de tamaño y fecha interna.
|
||||
"""
|
||||
|
||||
import hashlib
|
||||
|
||||
|
||||
def compute_fingerprint(message_id: str | None, size: int, internaldate_raw: str, extra: str | None = None) -> str:
|
||||
if message_id:
|
||||
return "mid:" + message_id.strip()
|
||||
base = f"{size}:{internaldate_raw}:{extra or ''}"
|
||||
digest = hashlib.sha256(base.encode("utf-8", "replace")).hexdigest()
|
||||
return "nomid:" + digest
|
||||
Reference in New Issue
Block a user