Description,
Pflogsumm is a log analyzer/summarizer for the Postfix MTA.  It is
designed to provide an over-view of Postfix activity, with just enough
detail to give the administrator a “heads up” for potential trouble
spots.
Pflogsumm generates summaries and, in some cases, detailed reports of
mail server traffic volumes, rejected and bounced email, and server
warnings, errors and panics.
Pflogsumm is a great tool to create a summary of Postfix logs. Install it on Ubuntu with:
apt install pflogsumm 
(Make sure you logded in with sudo else add sueo infront of the above command)
After installing you can use the following commands to generate reports.
pflogsumm -d today /var/log/mail.log                  This command will generate the report for today
pflogsumm -d yesterday /var/log/mail.log                   This command Generate a report for yesterday.
If you like to generate a report for this week.
pflogsumm /var/log/mail.log  
If you like to see “problem reports (warning, defers, reject, bounces) before the “normal” report add the following parameters (flags)
--problems-first
like
pflogsumm -d today /var/log/mail.log --problems-first
TO add the email from address to each listing in reject report use the following parameters/flags
--rej-add-from
Like
pflogsumm -d today /var/log/mail.log --rej-add-from
To Display the full reason in reject summaries, use --verbose-msg-detail parameters/flag.
like this
pflogsumm -d today /var/log/mail.log --rej-add-from --verbose-msg-detail 
To send a report to your email address every day.
We can add a crontab job.
crontab -e
Add the following line, which will generate a report every day at 2:00 AM.
0 2 * * * /usr/sbin/pflogsumm -d yesterday /var/log/mail.log --problems-first --rej-add-from --verbose-msg-detail -q
To receive the report via email, add the following line above all cron jobs.
MAILTO="you@exmaple.com"
If the MAILTO variable has already been set but you want Postfix mail log summary sent to a different email address, you can put the following line in your Cron job.
0 2 * * * /usr/sbin/pflogsumm -d yesterday /var/log/mail.log --problems-first --rej-add-from --verbose-msg-detail -q | mutt -s "Postfix mail log summary"  you@example.com
The output of pflogsumm command is redirected to mutt, a command line mail user agent, which will use the output as the email body and send it to the email address you specify at the end.
You need to install mutt on your Linux server.
apt install mutt
Here is
Synopsis
pflogsumm.pl -[eq] [-d 
    [–verp_mung[=
    [-m│–uucp_mung] [-i│–ignore_case] [–smtpd_stats] [–mailq]
    [–problems_first] [–rej_add_from] [–no_bounce_detail]
    [–no_deferral_detail] [–no_reject_detail] [–no_no_msg_size]
    [–no_smtpd_warnings] [–zero_fill] [–syslog_name=string]
    [file1 [filen]]
Options
-d today       generate report for just today
-d yesterday   generate report for just “yesterday”
-e extended (extreme? excessive?) detail
               Emit detailed reports.  At present, this includes
               only a per-message report, sorted by sender domain,
               then user-in-domain, then by queue i.d.
               WARNING: the data built to generate this report can
               quickly consume very large amounts of memory if a
               lot of log entries are processed!
-h 
0 = none.
               See also: “-u” and “–no_*_detail” for further
                         report-limiting options.
–help Emit short usage message and bail out.
               (By happy coincidence, “-h” alone does much the same,
               being as it requires a numeric argument :-).  Yeah, I
               know: lame.)
-i
–ignore_case  Handle complete email address in a case-insensitive
               manner.
               Normally pflogsumm lower-cases only the host and
               domain parts, leaving the user part alone.  This
               option causes the entire email address to be lower-
               cased.
–iso_date_time
               For summaries that contain date or time information,
               use ISO 8601 standard formats (CCYY-MM-DD and HH:MM),
               rather than “Mon DD CCYY” and “HHMM”.
-m             modify (mung?) UUCP-style bang-paths
–uucp_mung
               This is for use when you have a mix of Internet-style
               domain addresses and UUCP-style bang-paths in the log.
               Upstream UUCP feeds sometimes mung Internet domain
               style address into bang-paths.  This option can
               sometimes undo the “damage”.  For example:
               “somehost.dom!username@foo” (where “foo” is the next
               host upstream and “somehost.dom” was whence the email
               originated) will get converted to
               “foo!username@somehost.dom”.  This also affects the
               extended detail report (-e), to help ensure that by-
                domain-by-name sorting is more accurate.
–mailq Run “mailq” command at end of report.
               Merely a convenience feature.  (Assumes that “mailq”
               is in $PATH.  See “$mailqCmd” variable to path thisi
               if desired.)
–no_bounce_detail
–no_deferral_detail
–no_reject_detail
               Suppresses the printing of the following detailed
               reports, respectively:
                    message bounce detail (by relay)
                    message deferral detail
                    message reject detail
               See also: “-u” and “-h” for further report-limiting
                         options.
–no_no_msg_size
Do not emit report on “Messages with no size data”.
                Message size is reported only by the queue manager.
                The message may be delivered long-enough after the
                (last) qmgr log entry that the information is not in
                the log(s) processed by a particular run of
                pflogsumm.pl.  This throws off “Recipients by message
                size” and the total for “bytes delivered.” These are
                normally reported by pflogsumm as “Messages with no
                size data.”
–no_smtpd_warnings
                On a busy mail server, say at an ISP, SMTPD warnings
                can result in a rather sizeable report.  This option
                turns reporting them off.
–problems_first
               Emit “problems” reports (bounces, defers, warnings,
               etc.) before “normal” stats.
–rej_add_from
               For those reject reports that list IP addresses or
               host/domain names: append the email from address to
               each listing.  (Does not apply to “Improper use of
               SMTP command pipelining” report.)
-q quiet – don’t print headings for empty reports
               note: headings for warning, fatal, and “master”
               messages will always be printed.
–smtpd_stats
Generate smtpd connection statistics.
               The “per-day” report is not generated for single-day
               reports.  For multiple-day reports: “per-hour” numbers
               are daily averages (reflected in the report heading).
–syslog_name=name
Set syslog_name to look for for Postfix log entries.
               By default, pflogsumm looks for entries in logfiles
               with a syslog name of “postfix,” the default.
               If you’ve set a non-default “syslog_name” parameter
               in your Postfix configuration, use this option to
               tell pflogsumm what that is.
               See the discussion about the use of this option under
               “NOTES,” below.
-u 
               See also: “-h” and “–no_*_detail” for further
                         report-limiting options.
–verbose_msg_detail
               For the message deferral, bounce and reject summaries:
               display the full “reason”, rather than a truncated one.
Note: this can result in quite long lines in the report.
–verp_mung    do “VERP” generated address (?) munging.  Convert
–verp_mung=2  sender addresses of the form
               “list-return-NN-someuser=some.dom@host.sender.dom”
                to
                  “list-return-ID-someuser=some.dom@host.sender.dom”
In other words: replace the numeric value with “ID”.
               By specifying the optional “=2” (second form), the
               munging is more “aggressive”, converting the address
               to something like:
“list-return@host.sender.dom”
               Actually: specifying anything less than 2 does the
               “simple” munging and anything greater than 1 results
               in the more “aggressive” hack being applied.
See “NOTES” regarding this option.
–version Print program name and version and bail out.
–zero_fill    “Zero-fill” certain arrays so reports come out with
               data in columns that that might otherwise be blank.
Return Value
Pflogsumm doesn’t return anything of interest to the shell.
