Getting rid of the p7m file extension

12,607

Solution 1

p7m is an encryption format that is often used for email attachments.

I was also not able to find a Linux tool that is able to open that file type after a quick google research. However, there exist some tools for Windows (e.g. Cryptigo p7mViewer) or OSX.

What you could try if you have no access to a computer running Windows/OSX is to install the Windows emulator wine and try to install a Windows viewer in there. I can't tell you whether this would work, but it is worth a try, if that file is important for you.

Another possible solution could be to install Claws Mail, a mail program for Ubuntu, and this plugin. I am not sure whether that allows you to view those .p7m files with that mail program either, I just got this hint from @Toroidal in the chat.

Solution 2

Create a small shell script like this one:

#!/bin/bash
openssl pkcs7 -inform DER -in "$1" -print_certs -out "$1.pem"
openssl smime -verify -in "$1" -inform der -noverify -signer "$1.pem" -out "$1.pdf" 2>/dev/null
rm "$1.pem"
evince "$1.pdf"
rm "$1.pdf
  1. Make it executable
  2. Select "open with other application"
  3. Choose the small script created above
  4. Done.

Solution 3

Unfortunately, none of these answers worked for me. The attachment showed up in gmail's web interface as smime.p7m, and in Thunderbird (which I can now get rid of since it didn't help) as winmail.dat.

Quickly, as a list of commands, what worked for me was the following (assuming you downloaded the smime.p7m into ~/Downloads):

sudo apt install mpack tnef
cd ~/Downloads
munpack smime.p7m
tnef winmail.dat
ls -lt
rm mail.eml winmail.dat

To determine if this will even help you:

  • just install mpack
  • run munpack on the smime.p7m file
  • A new file should appear (perhaps named winmail.dat). If this is the case, run:

file winmail.dat # or whatever the new filename

  • if "winmail.dat: Transport Neutral Encapsulation Format" appears, install tnef and complete as listed above.
  • if that completes successfully, you should now have your zip archive in the same directory.
  • otherwise, this answer won't help:

sudo apt remove mpack tnef

Sources:

FIX Gmail smime.p7m and tnef open mail (with winmail.dat)

How to open winmail.dat files on Ubuntu and Debian Linux

Solution 4

Another solution, inspired from the previous user3801675's script.

Create a small shell script, in ~/bin directory named p7m.sh like this one:

#!/bin/bash
#set -x
outdir="$1.out"
filename="${1##*/}" #extract filename, without path
outfile=$outdir/${filename/.p7m/}
mkdir $outdir
openssl pkcs7 -inform DER -in "$1" -print_certs -out "$outdir/signer.pem"
openssl smime -verify -in "$1" -inform der -noverify -signer  "$outdir/signer.pem" -out "$outfile" 2>/dev/null
xdg-open "$outfile"
#if you don't need extracted file uncoment the following line
#rm "$outdir/signer.pem"; rm "$outfile"; rmdir $outdir
  1. Make it executable chmod +x ~/bin/p7m.sh
  2. from a shell use the command ~/bin/p7m.sh filename.pdf.p7m

or

  1. From the file manager select filename.pdf.p7m and using mouse right click choose "open with other application"
  2. Choose the small script created above Done.

Usually the received file (attachment) has the extension p7m as in

filename.pdf.p7m 

The proposed script first creates the subdirectory

filename.pdf.p7m.out/

then extracts the key-file signer.pem and the file filename.pdf removing the extension .p7m

The two file are saved in the previously created folder.

The extracted file filename.pdf is opened using xdg-open instead of evince, because xdg-open can open all kind of file using the correct application based on file type.

Share:
12,607

Related videos on Youtube

JaUnCpp
Author by

JaUnCpp

Updated on September 18, 2022

Comments

  • JaUnCpp
    JaUnCpp over 1 year

    The internet has not been helpful this time. I have a zip archive that also has a p7m extension. How can I lose that extension so that I can view the files? Any help is appreciated.

    Than you!

    • Elder Geek
      Elder Geek about 9 years
      a p7m file is an encrypted attachment. decrypting it would make sense to me.
  • Byte Commander
    Byte Commander about 9 years
    Would you tell me which option you tried?
  • JaUnCpp
    JaUnCpp about 9 years
    I didn't try any, my mother tried Cryptigo and she said it's ok.
  • Digger
    Digger over 7 years
    Using Debian 6 (Squeeze), I was able to open up an "smime.p7m" file that had been zipped by a Windows sender. First, I unzipped said zip file using unzip, then, from the above-mentioned "mpack" package, I used the above-mentioned mumpack command on the resultant "smime.p7m" file. Out popped the two enclosed jpg files, immediately suitable for viewing in my jpg viewer.
  • ngm
    ngm about 7 years
    These commands worked for me. Although the output wasn't a PDF file - it was just plain text.
  • Peter Flynn
    Peter Flynn over 6 years
    I would take issue with "often used"...in 30 years of using email I just came across my first p7m attachment today.
  • Peter Flynn
    Peter Flynn over 6 years
    unable to load PKCS7 object 140140624967320:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1197: 140140624967320:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:374:Type=PKCS7
  • Peter Flynn
    Peter Flynn over 6 years
    Where do I get pkcs7?
  • robertspierre
    robertspierre over 5 years
    @PeterFlynn what do you mean? pkcs7 is a standard, not a software
  • Fabio Veronese
    Fabio Veronese almost 4 years
    This worked quite good (I had to replace evince with my preferred pdf viewer), but it would be nice to have some information about the meaning of the issued commands in the script