format and output all received: lines in an e-mail message

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
25 messages Options
12
Reply | Threaded
Open this post in threaded view
|

format and output all received: lines in an e-mail message

Greg Minshall
hi.  i'd like first, of course, to thank you all for nmh!

then, i'd like to use something like fmttest(1) to print out all the
"Received:" lines in an e-mail message.  ideally, each "Received:" line
would come out on a separate line; less ideally, but i'm sure very
practical, a very long line would come out, with some odd ascii code
separating the individual lines.

any hints?

cheers, Greg

----
context: the problem is there are (typically) multiple "Received:"
header in an e-mail messages; can try either of these
----
bash% fmttest -outsize max +SOMEFOLDER 660 -format "%(putstr{received});"
bash% fmttest -outsize max +SOMEFOLDER 660 -format "%(putlit{received});"
----
and get either a long line, or a number of lines, but without any real
indication of how to separate the output into individual "Received"
lines.

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Ralph Corderoy
Hi Greg,

Keeping you CC'd.

> context: the problem is there are (typically) multiple "Received:"
> header in an e-mail messages; can try either of these
> ----
> bash% fmttest -outsize max +SOMEFOLDER 660 -format "%(putstr{received});"
> bash% fmttest -outsize max +SOMEFOLDER 660 -format "%(putlit{received});"
> ----
> and get either a long line, or a number of lines, but without any real
> indication of how to separate the output into individual "Received"
> lines.

Here's my input test file.

    $ sed -n l mail
    foo: a aa$
    foo: b bb$
    foo: c$
     cc$
    foo:$
     dd$
    foo: e$
    \tee$
    $

Obvious approach, as you found, gives all the values of the Received
fields in one go.

    $ fmttest -outsize max -format '%{foo}' -file mail
    a aa b bb c cc dd e ee
    $

-dump and -trace can be useful for more insight.

    $ fmttest -dump -trace -outsize max -format '%{foo}' -file mail
    Instruction dump of format string:
    %{foo}
            COMP, comp "foo"
            DONE
            COMP, comp "foo", c_flags 0x8<TRIMMED>
    num=0 str=<nil>
    outbuf="a aa b bb c cc dd e ee"
            DONE
    a aa b bb c cc dd e ee
    $

Using %(putstr) shows the string register being set to the values with a
tab inserted to join them together.

    $ fmttest -dump -trace -outsize max -format '%(putstr{foo})' -file mail
    Instruction dump of format string:
    %(putstr{foo})
            LS_COMP, comp "foo"
            STR
            DONE
            LS_COMP, comp "foo", c_flags 0x8<TRIMMED>
    num=0 str=" a aa\n\t b bb\n\t c\n cc\n\t\n dd\n\t e\n\tee"
            STR
    outbuf="a aa b bb c cc dd e ee"
            DONE
    a aa b bb c cc dd e ee
    $

Using %(putlit) preserves those tabs.

    $ fmttest -dump -trace -outsize max -format '%(putlit{foo})' -file mail
    Instruction dump of format string:
    %(putlit{foo})
            LS_COMP, comp "foo"
            STRLIT
            DONE
            LS_COMP, comp "foo", c_flags 0x8<TRIMMED>
    num=0 str=" a aa\n\t b bb\n\t c\n cc\n\t\n dd\n\t e\n\tee"
            STRLIT
    outbuf=" a aa\n\t b bb\n\t c\n cc\n\t\n dd\n\t e\n\tee"
            DONE
     a aa
             b bb
             c
     cc
           
     dd
             e
            ee
    $

But \n\t can't be used to split them back into the original distinct
field values because that may occur within a value, as with my ee test
input.

That's all I've time for at the moment, but others may chip in and this
saves them covering some of the ground.

--
Cheers, Ralph.

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Ken Hornstein-2
In reply to this post by Greg Minshall
>then, i'd like to use something like fmttest(1) to print out all the
>"Received:" lines in an e-mail message.  ideally, each "Received:" line
>would come out on a separate line; less ideally, but i'm sure very
>practical, a very long line would come out, with some odd ascii code
>separating the individual lines.

The format engine may not be the best tool for this job.

It is really optimized for dealing with header fields that appear only
once (e.g., Subject) or ones that can be combined in a reasonable
way (like header fields that contain address).  So when you refer to
%{received}, you're getting everything folded together.  There's no loop
processing that you could use to say, "Run these commands for every
instance of the Received header", which is really wnat you want.  That's
not to say it wouldn't be useful, but it would require some serious
rethinking of the format engine.

But, have you considered using mhl with a custom mhl format file?  That's
a tool designed to deal with each invidiual header, and I think that
would do exactly what you want.

--Ken

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Ralph Corderoy
In reply to this post by Ralph Corderoy
Hi Greg,

> That's all I've time for at the moment, but others may chip in and this
> saves them covering some of the ground.

Ken's mhl(1) suggestion is what I would have tried.  But there's also
non-nmh solutions, e.g. sed or awk if you're familiar with those.
This prints all the Foo fields, each on a line, joining continuation lines.

    #! /usr/bin/gawk -bf

    BEGIN {
        IGNORECASE = 1
    }

    pending {
        if (/^[ \t]/) {
            printf " %s", $0
        } else {
            print ""
            pending = 0
        }
    }

    /^foo[ \t]*:/ {
        printf "%s:%s", FILENAME, $0
        pending = 1
        next
    }

    /^$/ {
        nextfile
    }

    END {
        if (pending)
            print ""
    }

--
Cheers, Ralph.

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Paul Fox-3
In reply to this post by Greg Minshall
greg wrote:
 > then, i'd like to use something like fmttest(1) to print out all the
 > "Received:" lines in an e-mail message.  ideally, each "Received:" line
 > would come out on a separate line; less ideally, but i'm sure very

Is strict use of only MH tools a requirement for some reason?  Because
if not, then this does a pretty good job:
    show -noshowproc |sed -n -e '/^$/q' -e '/^Received:/p'

paul
=----------------------
paul fox, [hidden email] (arlington, ma, where it's 35.2 degrees)


Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Ralph Corderoy
Hi Paul,

> greg wrote:
> > then, i'd like to use something like fmttest(1) to print out all the
> > "Received:" lines in an e-mail message.  ideally, each "Received:"
> > line would come out on a separate line; less ideally, but i'm sure
> > very
>
> Is strict use of only MH tools a requirement for some reason?  Because
> if not, then this does a pretty good job:
>     show -noshowproc |sed -n -e '/^$/q' -e '/^Received:/p'

Fields can be continued by starting the next line with white-space,
and Received fields are often continued.  :-)

--
Cheers, Ralph.

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Valdis Klētnieks
In reply to this post by Greg Minshall
On Wed, 20 Nov 2019 10:41:34 +0530, Greg Minshall said:
> hi.  i'd like first, of course, to thank you all for nmh!
>
> then, i'd like to use something like fmttest(1) to print out all the
> "Received:" lines in an e-mail message.  ideally, each "Received:" line
> would come out on a separate line; less ideally, but i'm sure very
> practical, a very long line would come out, with some odd ascii code
> separating the individual lines.

Well.... in the "not using mh tools at all" category, if you have procmail
installed, you can just use:

[~] cat Mail/inbox/1 | formail -c -x Received
 from localhost (localhost [127.0.0.1]) by turing-police.cc.vt.edu (8.12.6.Beta1/8.12.6.Beta1) with ESMTP id g86N6Pbs020540 for <valdis@localhost>; Fri, 6 Sep 2002 19:06:25 -0400
 from fan.cc.vt.edu [198.82.161.8] by localhost with POP3 (fetchmail-5.9.0) for valdis@localhost (single-drop); Fri, 06 Sep 2002 19:06:25 -0400 (EDT)
 from dagger.cc.vt.edu ([10.1.1.11])  by gkar.cc.vt.edu (Sun Internet Mail Server sims.3.5.2001.05.04.11.50.p10)  with ESMTP id <[hidden email]> for valdis@sims-ms-daemon; Fri,  6 Sep 2002 19:05:21 -0400 (EDT)
 from mail01.corp.tellme.com (mail01.corp.tellme.com [209.157.157.98])  by dagger.cc.vt.edu (Mirapoint Messaging Server MOS 3.2.0-GA)  with ESMTP id AQM10446; Fri, 06 Sep 2002 19:05:20 -0400 (EDT)
 from mail01.corp.tellme.com (localhost [127.0.0.1])  by localhost.tellme.com (Postfix) with ESMTP id 1EE5744BDD for  <[hidden email]>; Fri, 06 Sep 2002 16:05:19 -0700 (PDT)
 from dhcp157-180.corp.tellme.com  (dhcp157-180.corp.tellme.com [209.157.157.180]) by mail01.corp.tellme.com  (Postfix) with ESMTP id A6F5444BDA for <[hidden email]>; Fri,  06 Sep 2002 16:05:18 -0700 (PDT)

(Note that this returns the *values* of the lines, not the line.
 | sed -e 's/^/Received: /'  if that matters to you.

attachment0 (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Greg Minshall
hi, Valdis!

ah, formail -- awesome!  yes, that does great.

Ken and Ralph -- thanks for your replies.  yes, awk and sed are in my
repertoire, but, well, i was wondering if i could avoid those in this
case.

cheers, Greg

ps -- the goal is a little "blame" script for e-mail that tells you how
long a given message spent moving from A to B.  (this relies, of course,
on globally synchronized clocks, but that seems much more likely to be
true today than it did when Received: lines were first introduced.)

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Paul Fox-3
greg wrote:
 > ps -- the goal is a little "blame" script for e-mail that tells you how
 > long a given message spent moving from A to B.  (this relies, of course,
 > on globally synchronized clocks, but that seems much more likely to be
 > true today than it did when Received: lines were first introduced.)

Oh, why didn't you say so. :-)  Don't know if he's still on the list,
but I cribbed this from Chris Garrigues many many years ago.  Takes a
raw message on stdin.

paul

#!/usr/bin/perl -w
#
# mailroute by Chris Garrigues <[hidden email]>
#
# Reads an email message on stdin and pretty prints the contents of the
# recieved headers.
#
# When given an email message as it's argument will parse out the received
# headers and display the route it took to get to you and the times it
# arrived at each of the locations in your local timezone.
#
# It also tries to be clever in how it displays things:  (1) It only shows
# what changed in the date/time rather than the entire date/time each time.
# (2) It breaks the line before the keywords "from", "by", and "with"
# unless they appear in comments.

# Changes by Mikko H�nninen <[hidden email]>
#
# - match non-numeric timezones, as well as more liberal number checking
# - allow for two digit years as well as four digits (actually, any number
#   of digits)
# - also display Delivered-To: lines amidst Received: information
# - timezone conversion works even with timezones like +0745
# - somewhat prettier output (split at by/with/from) for non-recognised
#   date lines
# - print time difference from first entry
# - print time different always, even if it's the same as previous time
#   (so you can see where each hop is)
# - added "id" and "for" to keywords before which a linebreak is added
# - print date information on a separate line, so there's no need to reserve
#   columns for it on every line
# - print malformed received lines (cannot parse date) "as-is" with no
#   offset


use Time::Local;

# Global variable for date parsing
%mon = ('jan' => 0,
        'feb' => 1,
        'mar' => 2,
        'apr' => 3,
        'may' => 4,
        'jun' => 5,
        'jul' => 6,
        'aug' => 7,
        'sep' => 8,
        'oct' => 9,
        'nov' => 10,
        'dec' => 11);

# Initialize some variables to keep -w quiet
($owd, $om, $od, $ot, $oy) = ("", "", "", "", "");


# Perl trim function to remove whitespace from the start and end of the string
sub trim($)
{
        my $string = shift;
        $string =~ s/^\s+//;
        $string =~ s/\s+$//;
        return $string;
}


# Read the headers into $_
($_ = "\n" . join("", <>)) =~ s/\n\n.*$//sg;

# Parse the contents of the received headers into an array
@rec = ();
while (/\n(received|delivered-to):(.*?)(\n\S)/gis) {
    unshift(@rec, "$1:$2");
#    print "Adding $1: $2\n";
    $_ = "$3$'";
}
#while (/\nreceived:(.*?)(\n\S)/gis) {
#    unshift(@rec, $1);
#    print "Adding Received: $1\n";
#    $_ = "$2$'";
#}


for (@rec) {
    if (/^delivered-to:/i) {
      s/^delivered-to://i;  # strip Delivered-To:
      s/\s+/ /gs;
      s/^\s+//;
      print "                   Delivered-To: $_\n";
    }
    else {
      s/^received://i;  # strip Received:
      s/\s+/ /gs;

      # Format is "information; date"
      ($line, $date) = /^\s*(.*?)\s*;\s*(.*?)$/;
      if (!$date) {
        # no date, must be malformed? simscan will produce these
        # just print it out and go to next
        print "                   ", trim($_), "\n";
        next;
      }

      $date =~ s/\(.*\)//g;
      $date =~ s/\s+/ /gs;
      # Parse the sucker
      if ($date =~ /(\d+) (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec) (\d+) (\d+):(\d\d):(\d\d) ([+-]?\d+|\w+)/i) {
        # Coerce the date into something we can give to timegm
        $d = $1;
        ($m = $2) =~ tr/A-Z/a-z/;
        $y = $3;
        $h = $4;
        $mi = $5;
        $s = $6;
        $tz = $7;
        if ($tz =~ /[+-]?\d+/) { ($zs, $zh, $zm) = $tz =~ /^([-+])(\d\d)(\d\d)$/; }
          else { $zs = "+"; $zh = $zm = 0; }  # word tz def, assume GMT
        $m = $mon{$m};
        if ($y > 1900) { $y -= 1900; } elsif ($y < 70) { $y += 100; }  # Y2K fix
        if ($zs eq "+") { $zs = 1; } else { $zs = -1; }
        $ts = timegm($s, $mi, $h, $d, $m, $y) -
                     $zs * ($zh*60*60 + $zm*60);
        $begints = $ts unless ($begints);
        ($wd, $m, $d, $t, $y) = split(' ', localtime($ts));
        $d = " $d" if ($d < 10);
        # Insert line breaks
        $line =~ s/\b(by|with|from|id|for)\b/\n                   $1/g;
        # But take them back out if they're in a comment
        while ($line =~ s/\(([^()]*?)\s\s+?(.*?)\)/\($1 $2\)/gs) {};
        $line =~ s/\( /\(/g;
        $line =~ s/^\s*//s;
        # Figure out what parts of the date we want to display
        ($pwd, $pm, $pd, $pt, $py) = ($wd, $m, $d, $t, $y);
        $pwd = "" if ($wd eq $owd);
        $pm = "" if ($d eq $od);
        #$pm = "" if ($m eq $om);
        $pd = "" if ($d eq $od);
        $pt = "        " if ($t eq $ot);  # comment this out to always print time
        $py = "" if ($y eq $oy);
        $offs = $ts - $begints;
        if ($offs >= 0) { $off_sign = '+'; } else { $off_sign = '-'; $offs *= -1; }
        $off_s = $offs % 60;
        $off_m = int($offs / 60) % 60;
        $off_h = int($offs / 3600) % 24;
        if ($offs > 60*60*24) { $off_d = int($offs / (60*60*24)); } else { $off_d = ""; }
        $poffs = sprintf("%s%02d:%02d:%02d%s", $off_sign, $off_h, $off_m, $off_s, $off_d ? "+" . $off_d . "d" : "");
        print "$pwd $pd $pm $py\n" if ($py || $pm || $pd || $pwd);
        print "$pt $poffs $line\n";
        #print "$pwd $pm $pd $py $pt $poffs $line\n";
        ($owd, $om, $od, $ot, $oy) = ($wd, $m, $d, $t, $y);
        #$prevts = $ts;

      } else {
        # bail...
        $date =~ s/\b(by|with|from|using|id|for)\b/\n                   $1/g;
        $line =~ s/\b(by|with|from|using|id|for)\b/\n                   $1/g;
        printf ("%17s  %s\n", $date, $line);
        #print "$date $line\n";
      }

    }
}


=----------------------
paul fox, [hidden email] (arlington, ma, where it's 29.8 degrees)


Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Andy Bradford-2
In reply to this post by Greg Minshall
Thus said Greg Minshall on Wed, 20 Nov 2019 10:41:34 +0530:

> then, i'd like  to use something like fmttest(1) to  print out all the
> "Received:" lines in an e-mail message. ideally, each "Received:" line
> would come  out on a  separate line; less  ideally, but i'm  sure very
> practical, a very  long line would come out, with  some odd ascii code
> separating the individual lines.

I usually use  822field (from mess822 [1]) for this  kind of thing which
takes all received lines and reformats them one per line (odd ascii code
separating them is a newline).

For example, your message looks like:

$ 822field received < `mhpath cur` | tail -6          
 from eggs.gnu.org ([2001:470:142:3::10]:33280) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <[hidden email]>) id 1iXIOr-0005CP-UD for [hidden email]; Wed, 20 Nov 2019 00:19:34 -0500
 from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <[hidden email]>) id 1iXIOq-00089z-NS for [hidden email]; Wed, 20 Nov 2019 00:19:33 -0500
 from hiwela.pair.com ([209.68.5.201]:21038) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <[hidden email]>) id 1iXIOq-00088d-K6 for [hidden email]; Wed, 20 Nov 2019 00:19:32 -0500
 from hiwela.pair.com (localhost [127.0.0.1]) by hiwela.pair.com (Postfix) with ESMTP id 001419805E3 for <[hidden email]>; Wed, 20 Nov 2019 00:11:43 -0500 (EST)
 from minshall-entroware-apollo.cliq.com (unknown [59.95.74.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by hiwela.pair.com (Postfix) with ESMTPSA id 89AEF8F084C for <[hidden email]>; Wed, 20 Nov 2019 00:11:43 -0500 (EST)
 from apollo2.minshall.org (localhost [IPv6:::1]) by minshall-entroware-apollo.cliq.com (Postfix) with ESMTP id E305D6089A for <[hidden email]>; Wed, 20 Nov 2019 10:41:34 +0530 (IST)

Andy

[1] https://cr.yp.to/mess822.html
--
TAI64 timestamp: 400000005dd69ee2



Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Steffen Nurpmeso
Andy Bradford wrote in <[hidden email]>:
 |Thus said Greg Minshall on Wed, 20 Nov 2019 10:41:34 +0530:
 |> then, i'd like  to use something like fmttest(1) to  print out all the
 |> "Received:" lines in an e-mail message. ideally, each "Received:" line
 |> would come  out on a  separate line; less  ideally, but i'm  sure very
 |> practical, a very  long line would come out, with  some odd ascii code
 |> separating the individual lines.
 |
 |I usually use  822field (from mess822 [1]) for this  kind of thing which
 |takes all received lines and reformats them one per line (odd ascii code
 |separating them is a newline).
 |
 |For example, your message looks like:
 |
 |$ 822field received < `mhpath cur` | tail -6          
 | from eggs.gnu.org ([2001:470:142:3::10]:33280) by lists.gnu.org with \
 ...

Well, yes, it is a bit restricted, but you could also use S-nail
v14.9.11 or later:

  $ printf 'dig c 25 -;dig 25 h s received;digmsg r 25' |\
    s-nail -#Rf +download
  212 Received
  from lists.gnu.org (lists.gnu.org [209.51.188.17]) by sdaoden.eu (Postfix) with ESMTPS id 977431604A for <[hidden email]>; Thu, 21 Nov 2019 15:28:01 +0100 (CET)
  from localhost ([::1]:41250 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <nmh-workers-bounces+steffen=[hidden email]>) id 1iXnR9-000318-IA for [hidden email]; Thu, 21 Nov 2019 09:27:59 -0500
  from eggs.gnu.org ([2001:470:142:3::10]:39911) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <[hidden email]>) id 1iXnQr-0002zm-Am for [hidden email]; Thu, 21 Nov 2019 09:27:42 -0500
  from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <[hidden email]>) id 1iXnQq-0007yp-1j for [hidden email]; Thu, 21 Nov 2019 09:27:41 -0500
  from pellegrino.bradfordfamily.org ([208.53.44.231]:50897) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from <[hidden email]>) id 1iXnQp-0007uL-NM for [hidden email]; Thu, 21 Nov 2019 09:27:39 -0500
  (qmail 73392 invoked from network); 21 Nov 2019 14:27:26 -0000
  from localhost (HELO arnor.bradfordfamily.org) (127.0.0.1) by localhost with SMTP; 21 Nov 2019 14:27:26 -0000
  (qmail 71469 invoked from network); 21 Nov 2019 14:27:10 -0000
  from localhost (HELO edoras.bradfordfamily.org) (127.0.0.1) by localhost with SMTP; 21 Nov 2019 14:27:10 -0000
  (qmail 50445 invoked from network); 21 Nov 2019 14:27:10 -0000
  from angmar.bradfordfamily.org (50.77.44.21) by edoras.bradfordfamily.org with SMTP; 21 Nov 2019 14:27:10 -0000
  (qmail 27684 invoked by uid 1000); 21 Nov 2019 14:27:10 -0000

Where dig is actually digmsg, c is create, h is header, s is show,
and r is remove.  String matching etc. via the csop and vexpr
commands.
I have heared someone revived qmail and wants to include some
patches for builtin TLS etc.  That sounded very much interesting,
especially if its mailing-list manager would be maintained again!

 |Andy
 |
 |[1] https://cr.yp.to/mess822.html
 ...

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Andy Bradford-2
Thus said Steffen Nurpmeso on Thu, 21 Nov 2019 23:14:29 +0100:

> I have heared someone revived qmail  and wants to include some patches
> for builtin TLS etc. That sounded very much interesting, especially if
> its mailing-list manager would be maintained again!

There has been some momentum around  creating a newer version that has a
forward path. I imagine there are  still some diehards out there like me
who  just continue  to  use  the original  software  (mine is  minimally
patched for example) because it "just works."

I  still use  unpatched ezmlm  for  my own  personal uses  for the  same
reasons,  though I  have added  an  extra binary;  but the  rest of  the
additional things that were added to it I haven't needed.

Curiously, the email  you sent me appears to have  never arrived via the
MLM that nmh-workers uses---I suspect it has one of those fancy features
that thinks an email that was sent to one address shouldn't be also sent
to another address (i.e. if the address of the To/Cc recipient is also a
member  of  the MLM  exclude  one  of  them).  Personally, I  prefer  to
distinguish between direct  replies and replies via MLM so  I don't mind
the extra because my filters funnel things appropriately.

Andy
--
TAI64 timestamp: 400000005dd80178



Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Steffen Nurpmeso
Andy Bradford wrote in <[hidden email]\
.org>:
 |Thus said Steffen Nurpmeso on Thu, 21 Nov 2019 23:14:29 +0100:
 |> I have heared someone revived qmail  and wants to include some patches
 |> for builtin TLS etc. That sounded very much interesting, especially if
 |> its mailing-list manager would be maintained again!
 |
 |There has been some momentum around  creating a newer version that has a
 |forward path. I imagine there are  still some diehards out there like me
 |who  just continue  to  use  the original  software  (mine is  minimally
 |patched for example) because it "just works."

It was notqmail..  Not touched in a few months.  Well.

 |I  still use  unpatched ezmlm  for  my own  personal uses  for the  same
 |reasons,  though I  have added  an  extra binary;  but the  rest of  the
 |additional things that were added to it I haven't needed.

I was thinking about that when i practically had to move away from
Sourceforge, since Unicode.org used it for many years, and i had
no rememberance of any issue (except seeing never seen From_ quoting
via space not >).  (Not that i remember any issues after their
switch to Mailman.)  I did not dare to go that route by then.

 |Curiously, the email  you sent me appears to have  never arrived via the
 |MLM that nmh-workers uses---I suspect it has one of those fancy features
 |that thinks an email that was sent to one address shouldn't be also sent
 |to another address (i.e. if the address of the To/Cc recipient is also a
 |member  of  the MLM  exclude  one  of  them).  Personally, I  prefer  to
 |distinguish between direct  replies and replies via MLM so  I don't mind
 |the extra because my filters funnel things appropriately.

That must be your very personal Mailman config then, or?
Well, hmmm ..
I prefer people using Mail-Followup-To: instead of some ML
software modifying the address lists, they could as well just
avoid resending the mail!?!  Yes, i mean, well.
I really like looking into old archives and i hope what i see is
the real original thing, which i think is a value by itself.
But the world does not seem to cherish this.
A nice weekend!

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Ken Hornstein-2
In reply to this post by Andy Bradford-2
>Curiously, the email  you sent me appears to have  never arrived via the
>MLM that nmh-workers uses---I suspect it has one of those fancy features
>that thinks an email that was sent to one address shouldn't be also sent
>to another address (i.e. if the address of the To/Cc recipient is also a
>member  of  the MLM  exclude  one  of  them).

As far as I know our mailing list software (hosted by savannah) does
not have such a feature; I see double-replies of messages and my own
messages sent to me on the mailing list.

--Ken

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Valdis Klētnieks
In reply to this post by Steffen Nurpmeso
On Fri, 22 Nov 2019 20:51:52 +0100, Steffen Nurpmeso said:

> I prefer people using Mail-Followup-To: instead of some ML
> software modifying the address lists, they could as well just
> avoid resending the mail!?!  Yes, i mean, well.
> I really like looking into old archives and i hope what i see is
> the real original thing, which i think is a value by itself.
> But the world does not seem to cherish this.

A bigger issue is GMail's handling of Message-Id:

If you post to a mailing list, it notes the Message-Id: on the way out,
and when the list sends its copy to you, it gets silently munched by the
duplicate suppressor.  So unless you are careful with Fcc: and have
nmh save a copy in the appropriate folder, your comments in a thread
go poof.

attachment0 (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Ralph Corderoy
In reply to this post by Greg Minshall
Hi Greg,

> yes, awk and sed are in my repertoire, but, well, i was wondering if i
> could avoid those in this case.

For list's archive's completeness, the nmh way, using mhl(1) as Ken
suggested, is

    /usr/lib/nmh/mhl -nomoreproc \
        -form <(echo received:compress,nowrap,split) \
        `mhpath .`

--
Cheers, Ralph.

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Ralph Corderoy
In reply to this post by Ken Hornstein-2
Hi Ken,

> Andy Bradford wrote:
> > Curiously, the email you sent me appears to have never arrived via
> > the MLM that nmh-workers uses---I suspect it has one of those fancy
> > features that thinks an email that was sent to one address shouldn't
> > be also sent to another address (i.e. if the address of the To/Cc
> > recipient is also a member of the MLM exclude one of them).

Andy is correct.  Mailman has a `nodupes' flag for every subscription and
it's set for Andy's subscription.  Mailman says

    nodupes -- Does the member want to avoid duplicates of the same
    message?

> I see double-replies of messages and my own messages sent to me on the
> mailing list.

That same nodupes flag is set for your subscription too, so that's odd.
Only two subscribers do not have the flag set.

--
Cheers, Ralph.

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Greg Minshall
In reply to this post by Ken Hornstein-2
thanks to everyone for all the replies!

Ken suggested mhl. conveniently combined with (new-fangled) bash
"process substitution", the following does exactly what i want:
----
mhl -form <(echo received:split,compress,nowrap) `mhpath +inbox 794`
----

cheers, Greg

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Greg Minshall
In reply to this post by Ralph Corderoy
oof, ships crossing in the night -- thanks!  (and for the
"-nomoreproc".)

> Hi Greg,
>
> > yes, awk and sed are in my repertoire, but, well, i was wondering if i
> > could avoid those in this case.
>
> For list's archive's completeness, the nmh way, using mhl(1) as Ken
> suggested, is
>
>     /usr/lib/nmh/mhl -nomoreproc \
>         -form <(echo received:compress,nowrap,split) \
>         `mhpath .`
>
> --
> Cheers, Ralph.
>

Reply | Threaded
Open this post in threaded view
|

Re: format and output all received: lines in an e-mail message

Steffen Nurpmeso
In reply to this post by Valdis Klētnieks
Valdis Klētnieks wrote in <235182.1574454918@turing-police>:
 |On Fri, 22 Nov 2019 20:51:52 +0100, Steffen Nurpmeso said:
 |
 |> I prefer people using Mail-Followup-To: instead of some ML
 |> software modifying the address lists, they could as well just
 |> avoid resending the mail!?!  Yes, i mean, well.
 |> I really like looking into old archives and i hope what i see is
 |> the real original thing, which i think is a value by itself.
 |> But the world does not seem to cherish this.
 |
 |A bigger issue is GMail's handling of Message-Id:
 |
 |If you post to a mailing list, it notes the Message-Id: on the way out,
 |and when the list sends its copy to you, it gets silently munched by the
 |duplicate suppressor.  So unless you are careful with Fcc: and have
 |nmh save a copy in the appropriate folder, your comments in a thread
 |go poof.

Poof also in use to spring out of existence.
To me such situations happen regulary even without GMail ._.

Before the upcoming release of my MUA i will have to add
a reply-to-swapin variable so one can use the address in Reply-To:
not only as an exclusive receiver override (as with M-F-T:), but
only to replace the one address in From: (or Sender:) with it.
This is the only idea i have to work with DKIM++ the way it is in
use on those lists which use the "x via y" syntax.
(Even if noone wants to hear just about any critics regarding
DKIM / DMARC / ARC, neither here nor on other lists.)

 --End of <235182.1574454918@turing-police>

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

12