fix parsing ricevute
This commit is contained in:
@@ -86,17 +86,23 @@ class SmtpSender:
|
||||
body_text: str,
|
||||
body_html: str | None = None,
|
||||
attachments: list[dict] | None = None,
|
||||
preset_message_id: str | None = None,
|
||||
) -> tuple[MIMEMultipart, str]:
|
||||
"""
|
||||
Costruisce il messaggio MIME per la PEC.
|
||||
|
||||
Args:
|
||||
to_addresses: destinatari principali
|
||||
cc_addresses: destinatari in copia (può essere vuoto)
|
||||
subject: oggetto del messaggio
|
||||
body_text: corpo in testo semplice
|
||||
body_html: corpo HTML opzionale
|
||||
attachments: lista di dict {filename, content: bytes, content_type}
|
||||
to_addresses: destinatari principali
|
||||
cc_addresses: destinatari in copia (può essere vuoto)
|
||||
subject: oggetto del messaggio
|
||||
body_text: corpo in testo semplice
|
||||
body_html: corpo HTML opzionale
|
||||
attachments: lista di dict {filename, content: bytes, content_type}
|
||||
preset_message_id: Message-ID pre-generato (opzionale). Se fornito viene
|
||||
usato direttamente invece di generarne uno nuovo con
|
||||
make_msgid(). Permette di settare message_id_header
|
||||
nel DB PRIMA dell'invio SMTP, eliminando la race
|
||||
condition con il binding delle ricevute di accettazione.
|
||||
|
||||
Returns:
|
||||
(msg MIME, message_id_header)
|
||||
@@ -115,7 +121,9 @@ class SmtpSender:
|
||||
body_container = msg
|
||||
|
||||
# Headers obbligatori
|
||||
message_id = make_msgid(domain="pechub.local")
|
||||
# Se il chiamante ha pre-generato il Message-ID (per committarlo nel DB prima
|
||||
# dell'invio SMTP), lo usiamo direttamente. Altrimenti ne generiamo uno nuovo.
|
||||
message_id = preset_message_id if preset_message_id else make_msgid(domain="pechub.local")
|
||||
msg["From"] = self.mailbox.email_address
|
||||
msg["To"] = ", ".join(to_addresses)
|
||||
if cc_addresses:
|
||||
@@ -171,6 +179,7 @@ class SmtpSender:
|
||||
body_text: str,
|
||||
body_html: str | None = None,
|
||||
attachments: list[dict] | None = None,
|
||||
preset_message_id: str | None = None,
|
||||
) -> tuple[str, bytes]:
|
||||
"""
|
||||
Invia la PEC via SMTP.
|
||||
@@ -180,6 +189,12 @@ class SmtpSender:
|
||||
- Porta 587 con STARTTLS (use_tls=False, porta 587)
|
||||
- Porta 25 plain (uso sconsigliato)
|
||||
|
||||
Args:
|
||||
preset_message_id: Message-ID pre-generato da usare nell'header Message-ID.
|
||||
Deve essere gia' stato committato nel DB su msg.message_id_header
|
||||
prima di chiamare questo metodo, per eliminare la race condition
|
||||
con il binding delle ricevute PEC.
|
||||
|
||||
Returns:
|
||||
(message_id_header, raw_eml_bytes)
|
||||
|
||||
@@ -194,6 +209,7 @@ class SmtpSender:
|
||||
body_text=body_text,
|
||||
body_html=body_html,
|
||||
attachments=attachments,
|
||||
preset_message_id=preset_message_id,
|
||||
)
|
||||
|
||||
raw_eml: bytes = msg.as_bytes()
|
||||
|
||||
Reference in New Issue
Block a user