Blog
Il file P7M non si apre: cosa fare
Se un file .p7m non si apre: programma sbagliato, Base64, file troncato, doppia busta, PEC o contenuto cifrato. Come distinguere le cause reali.
- Pubblicato il
- Aggiornato il
Ha scaricato un .p7m, ha fatto doppio clic e ha ottenuto un errore, una pagina vuota o un PDF “danneggiato”. Quasi sempre la causa è una di poche. Questa guida le mette in ordine, da quella che non richiede un file nuovo a quella che richiede di riscrivere al mittente. Usi Lettore P7M come prova: il messaggio che compare è già una diagnosi, perché il programma guarda il contenuto e non il nome.
Il computer non ha un programma adatto
È il caso più frequente e non indica un file rotto. Windows, macOS, Android e iPhone non associano .p7m a un lettore di buste CAdES. Anteprima e il visualizzatore PDF si fermano perché i primi byte non sono %PDF.
Soluzione: apra il lettore nel browser e selezioni il file, oppure lo trascini sulla pagina. Su Mac non associ l’estensione a Safari: aprirebbe la busta grezza. I passaggi per sistema sono nelle guide Mac e Android e iPhone.
Il file è testo Base64 o PEM
Apra una copia con un editor di testo. Se vede una sequenza lunga di lettere e numeri, la busta è testuale.
Il lettore accetta tre situazioni.
- Binario CMS, il caso normale prodotto dai software di firma.
- PEM, se il testo contiene
-----BEGIN PKCS7-----,-----BEGIN CMS-----o-----BEGIN SIGNED DATA-----, chiuso dall’etichetta END corrispondente. - Base64 standard dell’intero file: alfabeto
A-Z,a-z,0-9,+,/e=, con il padding corretto. Dopo la decodifica i byte devono iniziare come una struttura CMS.
Non accetta il Base64 url-safe, in cui + e / sono sostituiti da - e _. In quel caso il messaggio è lo stesso di un file che non è un P7M. Non provi a cambiare solo l’estensione. Se può, chieda al mittente la busta binaria originale, oppure converta quel testo al Base64 standard con uno strumento locale di cui si fida, senza inviare il documento a un sito sconosciuto.
L’estensione non conta. Un .txt che contiene una busta valida si apre. Un .p7m che contiene altro no.
Download incompleto, nome cambiato, file cifrato
Confronti la dimensione con quella indicata nel messaggio. Se è più piccola, l’allegato è troncato. Il lettore può segnalare un file danneggiato o incompleto. Lo scarichi di nuovo dalla webmail. Se il risultato non cambia, chieda un nuovo invio. Non esiste una riparazione seria di una busta tagliata a metà.
Un PDF vero inizia, in chiaro, con %PDF. Se il suo “p7m” inizia così, è un PDF rinominato: lo riporti a .pdf e lo apra con un lettore PDF. Non insista con il lettore di buste. Al contrario, un .p7m rinominato .pdf si può ancora selezionare nel lettore, perché l’estensione è ignorata.
Se il messaggio parla di un file cifrato, la busta è per un destinatario e serve la sua chiave. Non è una firma da “sbloccare” con una licenza. Se parla di firma separata, nella busta manca il documento originale: le serve anche il file staccato, quello a cui la firma si riferisce.
Il limite di dimensione è 100 MB. Un file più grande viene rifiutato con un messaggio esplicito, non con un’anteprima parziale. Sopra 50 MB compare un avviso: chiuda le altre schede e riprovi.
Doppia estensione e allegato PEC sbagliato
contratto.pdf.p7m.p7m è una busta dentro l’altra. Uno strumento che apre solo il primo livello le restituisce ancora un .p7m e sembra non aver concluso. Il lettore mostra i livelli separatamente e non li collassa in un solo PDF. Le controfirme restano non verificate. Se i livelli sono troppi, l’errore dice che le firme annidate sono in eccesso: non apra il risultato con la forza e non lo rinomini.
In una PEC è facile scegliere il file sbagliato. smime.p7s è la firma del gestore sulla busta di trasporto. daticert.xml contiene i dati di certificazione del messaggio. Nessuno dei due è il contratto. Salvi il .p7m che sta nel messaggio originale, postacert.eml. La procedura è nella guida allegati P7M nella PEC.
La busta si apre, ma l’esito non è “tutto regolare”
Questo non è un problema di apertura. Il documento si legge e i controlli vanno interpretati.
- Integrità non confermata: non tratti il contenuto come corrispondente alla firma.
- Certificato scaduto: la data dichiarata dal firmatario non dimostra da sola che la firma fosse valida nel passato.
- Revoca non disponibile: manca una prova utilizzabile, spesso per rete o per un servizio dell’emittente. Non è un via libera.
- Indicazione di revoca precedente alla firma: compare solo se una prova temporale verificata è successiva alla revoca. Senza quella prova, il lettore non trasforma una data dichiarata in un fatto storico.
La spiegazione degli esiti è nella guida firma scaduta o revocata. Il lettore non blocca la lettura per la revoca.
Se l’anteprima del contenuto manca, il formato interno può non avere una vista dedicata. Un XML che non è FatturaPA, un archivio o un disegno restano scaricabili come contenuto estratto, con licenza, e vanno aperti con il programma adatto. Il nome prima di .p7m è solo un indizio.
Una prova in cinque controlli
- Il file che ha selezionato è quello indicato nel messaggio, non la ricevuta PEC.
- La dimensione coincide con l’allegato originale.
- I primi caratteri sono una busta, un PEM previsto o un Base64 standard, non
%PDFe non un alfabeto url-safe. - Non sta cercando di aprire un PAdES. Un PDF firmato internamente non è un
.p7m. La differenza è in CAdES e PAdES. - Se la busta si apre, ha letto l’esito senza sostituirlo con il solo fatto che le pagine si vedono.
Un caso concreto da smontare
Il messaggio dice “allego il contratto firmato”. In download compaiono contratto.pdf.p7m da 20 KB e, nella stessa PEC, smime.p7s da pochi KB e daticert.xml. Il contratto di venti kilobyte è sospetto se si aspettava trenta pagine, ma può essere un PDF breve. Lo selezioni nel lettore. Se si apre, il problema non era il file: era Anteprima.
Se invece il lettore dice che non sembra un P7M, guardi i primi caratteri. %PDF significa che qualcuno ha già estratto o rinominato. Una riga -----BEGIN PKCS7----- è un PEM previsto e dovrebbe aprirsi. Una sequenza con - e _ al posto di + e / è Base64 url-safe: il lettore la rifiuta anche se il nome finisce con .p7m. In quel caso non cambi solo l’estensione. Chieda la busta binaria o converta in locale verso l’alfabeto standard, senza pubblicare il file su un convertitore sconosciuto.
Se la dimensione è la metà di quella scritta nella webmail, si fermi. Un nuovo tentativo di “riparazione” non ricostruisce i byte mancanti. Riscarichi o chieda l’invio. Annoti quale messaggio ha visto: “non sembra un P7M”, “danneggiato o incompleto”, “cifrato” e “firme annidate” non sono sinonimi e non si curano allo stesso modo.
Domande frequenti
Se il lettore dice che il file non sembra un P7M, è danneggiato?
Non sempre. Può essere un PDF rinominato, un Base64 non standard o l’allegato sbagliato di una PEC. Un file troncato, invece, va chiesto di nuovo al mittente.
Il Base64 url-safe viene accettato?
No. Sono accettati il formato binario, il PEM con etichetta PKCS7, CMS o SIGNED DATA e il Base64 standard con padding corretto. I caratteri meno e trattino basso non rientrano in quell’alfabeto.
Una firma non valida impedisce di leggere il documento?
No, quando la busta si apre. Integrità non confermata, certificato scaduto o revoca non disponibile lasciano il contenuto leggibile. Sono esiti da leggere, non un file da scartare in silenzio.
Quante buste annidate si possono aprire?
I livelli previsti vengono mostrati separatamente. Oltre il massimo ammesso il file non si apre e il messaggio indica firme annidate in eccesso.
Quando chiedere un nuovo invio
Chieda una nuova copia se la dimensione non torna, se il mittente conferma che il file originale è diverso, o se anche la sua copia binaria produce un errore di file incompleto. Non chieda un nuovo invio solo perché Anteprima non conosce .p7m. In quel caso selezioni il file nel lettore e prosegua con i controlli sulla firma.