GapFill Flowee
This commit is contained in:
@@ -170,6 +170,30 @@ def get_state_transition(pec_type: str) -> str | None:
|
||||
return _RECEIPT_TO_STATE.get(pec_type)
|
||||
|
||||
|
||||
def detect_protocol(msg: email.message.Message) -> str:
|
||||
"""
|
||||
Determina il protocollo di un messaggio in arrivo.
|
||||
|
||||
Logica di rilevamento automatico:
|
||||
- Se il messaggio contiene almeno un header X-REM-*, il protocollo e' REM europea
|
||||
- Altrimenti e' PEC italiana (default)
|
||||
|
||||
Questo permette al worker di usare il parser corretto (classify_rem_message vs
|
||||
classify_pec_message) anche per caselle configurate come 'pec_it' che potrebbero
|
||||
ricevere messaggi REM da partner europei (caso edge).
|
||||
|
||||
Args:
|
||||
msg: oggetto email.message.Message gia' parsato dagli header
|
||||
|
||||
Returns:
|
||||
'rem_eu' se header X-REM-* rilevati, 'pec_it' altrimenti.
|
||||
"""
|
||||
for header_name in msg.keys():
|
||||
if header_name.upper().startswith("X-REM-"):
|
||||
return "rem_eu"
|
||||
return "pec_it"
|
||||
|
||||
|
||||
def apply_outbound_transition(current_state: str, pec_type: str) -> str | None:
|
||||
"""
|
||||
Applica la state machine al messaggio outbound.
|
||||
|
||||
Reference in New Issue
Block a user