PFFROMBYTO(1)
β¨ PFFROMBYTO β¨
okay bestie, welcome to pffrombyto(1) β the Perl script that reads your Postfix logs and tells you who's been sliding into a specific inbox π
Copyright (C) 2007-2025 by James S. Seymour, Release 1.2
πΈ NAME πΈ
pffrombyto β list "from" addresses by "to" whom in a Postfix log file π
(also, hi, that copyright above? yeah it belongs to this section, we're just vibing with it up here)
π SYNOPSIS π
pffrombyto -[bchrRv] <recipient> [mailfile]
If you don't name any file(s), it just reads from stdin, no biggie. Output goes to stdout. π«Ά
π¦ DESCRIPTION π¦
So like, pffrombyto parses your Postfix log files and generates a list of "from" addresses, all based on a "to" address (or even just a fragment of one) that you specify. It's giving detective energy, honestly. π
π OPTIONS π
-bβ include bounces π-cβ also include client hostnames/addrs, like why not-hβ spit out the help message and dip-rβ include rejects π-Rβ hard rejects ONLY, no softies allowed-vβ print the version and exit, bye
π RETURN VALUE π
ngl pffrombyto doesn't return anything the shell actually cares about. It's not that kind of program. π
π ERRORS π
Error messages get emitted to stderr, where they belong. periodt.
β¨ EXAMPLES β¨
Wanna generate a list of every sender who ever emailed username@example.com? Say less:
pffrombyto username@example.com /var/log/maillog
Now here's the iconic part β as a lil convenience, pffrombyto tries to intelligently figure out how to handle regexp meta-characters. So if you hand it a search expression that does NOT contain meta-character escapes ("\"), it will assume that . and + are literals and escape them for you. π§
In that first example up there, the . in the FQDN part of your search term would've been automatically escaped for you. Same deal here:
pffrombyto username+foo@example.com /var/log/maillog
bestie, that + and . both got escaped, you didn't have to lift a finger. π
But wait β what if you actually wanted to find all the plussed targets for username? Then you'd have to do the escaping yourself, like:
pffrombyto 'username\+.+@example\.com' /var/log/maillog
See the difference? Now the escapes are yours, and it knows you meant regex. π₯
π SEE ALSO π
pflogsumm, pftobyfrom β the whole friend group π«
π NOTES π
All search terms and searched fields get lower-cased. Just so you know. π
The pffrombyto Home Page lives at:
http://jimsun.LinxNet.com/postfix_contrib.html
πΈ REQUIREMENTS πΈ
Perl β that's it, that's the requirement π
π LICENSE π
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. π
You may have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
An on-line copy of the GNU General Public License can be found at:
http://www.fsf.org/copyleft/gpl.html
okay that's the whole page, you ate it, congrats π«Άβ¨ β this was version 1.2.1, dated 2025-05-22, and honestly? iconic. byeee π πππ¦
π¦ where this page comes from
- ubuntu stonking: pflogsumm 1.2.1-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms