MIME / Perl MIME::Lite - Originalnachricht als Attachment

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

MIME / Perl MIME::Lite - Originalnachricht als Attachment

Beitrag von r4pt0r » 15.06.2015 17:08:54

Hallo,

Ich verzweifle gerade am simplen anhängen von Emails an eine per MIME::Lite generierte Nachricht. textfiles habe ich schon öfter so angehängt, aber eine komplette MIME-Nachricht als Anhang will einfach nicht...

Anwendungsfall ist ein Script das Mails direkt am Server aus mehreren "Sammelordnern" für veraltete Mailadressen gefüttert bekommt und mit Hinweis auf Aktualisierung der Adresse diese als Anhang an die neue Adresse weiterleiten soll.
Die Originalnachricht (maildir) wird direkt an das script gefüttert und landet in einem array: @mail = <>; . Daraus werden dann diverse Informationen geholt (Absender, Empfänger, reply-to, Betreff), und die Mail soll dann als attachment (inkl ggf darin enthaltener Anhänge) an die generierte MIME-Nachricht angehängt werden.

Hier der Teil in dem die Nachricht generiert wird:

Code: Alles auswählen

...
$msg = MIME::Lite->new(
        From    => 'noreply@mydomain.de',
        To      => $newrcpt,
        Subject => 'Nachricht an veraltete Adresse',
        Type    => 'multipart/mixed', 
);

$msg->attach(
        Type    => 'TEXT',
        Data    => $message,
);

$msg->attach(
        Type            => 'multipart/mixed',
        Data            => "@mail",
        Filename        => "$subject",
        Disposition     => 'attachment',
);

$msg->send() or die "can't send mail: $!";
Wird die Nachricht aus @mail als typ "multipart/*" hinzugefügt, enthält die erzeugte Mail kein Attachment. Als "message/..." wird alles als reintext angehängt/interpretiert -> Mailclients zeigen das Attachment inkl. base64-codierten anhängen als Text an, was völlig wertlos ist...

Wie (Type?) muss eine MIME-Nachricht korrekt an/in eine MIME-Nachricht angefügt werden? Man findet leider nur tonnenweise Infos/Codeschnipsel wie man Bilder oder Text anhängt, aber anscheinend wollte noch nie jemand eine MIME-Nachricht weiterleiten? (Oder ich stehe gerade komplett auf dem Schlauch...). Auch perldoc MIME::Simple ist hier leider nicht wirklich aufschlussreich.

Funktioniert das überhaupt so wie ich es vorhabe oder muss ich die Nachricht komplett in ihre Teile zerlegen und in der neuen MIME-Nachricht wieder zusammensetzen? (bevor ich den Aufwand betreibe bleibts als reintext - es soll sowieso so umständlich wie möglich für die User sein, sonst werden die Adressen nie Aktualisiert...)

Antworten