Per poter verificare il contenuto di una PEC sarà quindi necessario avere il messaggio completo. Questo può essere fatto nel seguente modo:
$raw_message = imap_fetchbody($this->imapStream, $uid_del_messaggio, '', FT_UID | FT_PEEK); file_put_contents("/tmp/pec-message.eml", $msg);
In questo modo ho salvato in un file temporaneo il messaggio gresso. Da notare che il terzo parametro di imap_fetch_body è una stringa vuota. Normalmente questo parametro rappresenta la sezione del messagio che ci interessa scaricare. Pssando la stringa vuota come argomento, stiamo dicendo di essere interessati a tutto il messaggio
A questo punto la verifica è molto semplice:
$esito = openssl_pkcs7_verify("/tmp/pec-message.eml", 0);
I possibili risultati sono:
- true: firma verificata
- false: firma non verificata
- -1: errore
Perciò non bisogna scordarsi, in fase di test del risultato, di usare il === invece del ==!