Mailer: nur Adress-Anteil als Absender im SMTP-Dialog verwenden & nicht encodieren
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 6 Feb 2017 08:12:55 +0000 (09:12 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 6 Feb 2017 08:12:55 +0000 (09:12 +0100)
Der SMTP-Dialog nutzt beim MAIL FROM nur den Adress-Anteil einer
E-Mail-Adresse:

MAIL FROM:<user@the.doma.in>

Daher sollte auch nur dieser Anteil übergeben werden, auch wenn in
$self->{from} potenziell eine komplette Adresse steht.

Da dieser Adress-Anteil ausschließlich aus ASCII-Zeichen besteht, muss
er dann auch nicht encodiert werden. Das macht die Strings im Log
leserlicher, und vermutlich sind MIME-Q-/-B-Encodings auch im
SMTP-Standard eigentlich nicht erlaubt (siehe RFC 5321).

SL/Mailer.pm

index b8b8b17..abc25f7 100644 (file)
@@ -245,7 +245,9 @@ sub send {
     #$::lxdebug->message(0, "message: " . $email->as_string);
     # return "boom";
 
-    $self->{driver}->start_mail(from => encode('MIME-Header',$self->{from}), to => [ $self->_all_recipients ]);
+    my $from_obj = (Email::Address->parse($self->{from}))[0];
+
+    $self->{driver}->start_mail(from => $from_obj->address, to => [ $self->_all_recipients ]);
     $self->{driver}->print($email->as_string);
     $self->{driver}->send;