I used mailq
command and I got a line like for example:
A705238B4C 603953 Wed May 23 11:09:58 apache@myserver.com
So, now I'm wondering is there a way where I can "read" an actual content of the mail by its id A705238B4C
I used mailq
command and I got a line like for example:
A705238B4C 603953 Wed May 23 11:09:58 apache@myserver.com
So, now I'm wondering is there a way where I can "read" an actual content of the mail by its id A705238B4C
The best way is to make use of the postcat
command.
postcat -q A705238B4C
At least the system I can look at right now, /var/spool/postfix
is the master directory. Subdirectories of that which matter include active
, deferred
, bounce
, etc. Queued files may be stored using the full file name (A705238B4C
) or with some level of hashing depth (A/7/05238B4C
).
As stated in Jeff's answer you can use postcat
with the -q
option.
But since Postfix version 2.7, you can also get readable output, by adding the -h
and/or -b
options:
-b Show body content.
-h Show message header content.
-q Search the Postfix queue for the named files instead of taking the names literally.
So this will show you the entire original message with headers and body:
id=DEDCB58048B
postcat -bh -q $id
or to show the headers of all queued messages, you could do something like this:
mailq | awk '/^[A-F0-9]+\s+/ {print $1}' \
| while read id; do echo $id; postcat -h -q $id; echo; done