=head1 get_recipients_from_header(STRING)

Die Funktion erwartet als Eingabewert einen String, der einen Mail-Text oder
mindestens -Header repräsentiert, und gibt eine Liste der in den C<To:>-,
C<Cc:-> und C<Bcc:>-Headern genannten E-Mail-Adressen zurück, wobei Kommentare
und doppelte Adressen entfernt werden.

=cut

use strict;
use utf8;
use warnings;
no warnings 'redefine';

use Mail::Address ();
use Mail::Header ();

sub get_recipients_from_header($) {
    my $header = Mail::Header->new( [ split /\n/, shift ] );
    my %known;
    grep !$known{ +lc }++, map $_->address, map Mail::Address->parse($_),
      map $header->get($_), qw(To Cc Bcc);
}

1;
