Philipp Hasenfratz: MIME::Entity

Beitrag lesen

Halihallo Klaus

zeimlich frech dieses Modul, wo ich doch nur den Text einer Mail kurz nachträglich ändern will, da ich dessen Inhalt beim build noch nicht kenne.

Jemand Kommentar oder gar Lösung???

Jetzt könntest Du natürlich dieses
$self->bodyhandle(new MIME::Body::Scalar $value);
nachbilden, bzw.. verwenden. Allerdings denke ich, daß der Author dieses Moduls sicherlich gute Gründe gehabt hat, den Body nicht mehr so ändern zu lassen.

Ja, ich habe auch schon daran gedacht, das build-in Modul zu verändern, aber ich muss gestehen, dass mir dies nicht zusagt...
Ich dachte mir: MIME::Entity setzt sich aus einem MIME::Header und MIME::Body zusammen, das Modul MIME::Body bietet jedoch die Möglichkeit den Body zu verändern, also wieso nicht auch MIME::Entity? - Ist doch eine "Inkonsistenz" und eine Verachtung des grundlegenden OOP - Styles. Nun, ich bin zu folgender Erkenntnis gelangt:

Nicht jedes Entity hat einen Body (steht auch in der Doku). Somit wäre der schreibzugriff auf den Body ein "fehler" (verstoss gegen die Richtlinien der RFC). Ich glaube, dass aufgrund dieser Tatsache, der Autor es unterliess, den Body nachträglich ändern zu können.

Du könntest ja das build so lange hinauszögern, bis Du weißt, was Du eigentlich haben willst. Die Informationen, die Du für ein build brauchst, speicherst Du dann gleich in ein passendes Hash, welches Du dann am Ende der Methode build übergibst.

Ja, nachträglich (noch etwas später in der Nacht), hatte ich die selbe Idee und es dann auch so gemacht. Ich warte, bis das Programm den Header und Body des ersten Entities festgelegt hat, dann wird es generiert. Werden dann noch weitere Parts attached, werden diese dem generierten angehängt, oder in einem Hash aufbewahrt.

Danke für deine Hilfe

Philipp