Philipp Hasenfratz: Kleines HTML-Mail Problem mit Perl/MIME::Lite

Beitrag lesen

Halihallo Nick

Forum, bitte. Nicht Board!
ist doch dasselbe?

http://aktuell.de.selfhtml.org/artikel/gedanken/foren-boards/index.htm
Nicht ganz :-)

Wie kann ich denn eine derartige, naja Baumstruktur mit MIME::Lite
verwirklichen? Geht das überhaupt?

Jep.

MIME::Entity kann ich leider nicht verwenden und mit MIME::Lite
haut's nicht hin.

Naja, es ist auch nicht nötig MIME::Entity zu verwenden. Wie ich
soeben bemerkt habe, kann man es auch mit MIME-Lite tun. Ich hatte
seither nur Erfahrungen mit dem MIME-Tools (MIME::Entity,
MIME::Parser, ...)

Sollte das doch gehen, wäre ich sehr dankbar, wenn Du mir bitte
nochmal einen Tipp, am besten ein Codebeispiel geben könntest, wie
du das gedacht hast?

Normalerweise wird hier nie kompletter Quelltext gepostet, aber da
ich dies zum Testen gemacht habe, muss ich ihn dir ja nicht
vorenthalten:

#!/usr/bin/perl

use strict;
use warnings;

use MIME::Lite;
use Net::SMTP;

my $host = 'mail.smtp_host.de';

my $entity = MIME::Lite->new(
    From => 'philipp.hasenfratz@gmx.net',
    To  => 'philipp.hasenfratz@gmx.net',
    Subject => 'Test multipart/mixed with alternative',
    Type => 'multipart/mixed',
);

my $alt = $entity->attach(
    Type => 'multipart/alternative',
);

$alt->attach(
    Type => 'text/plain',
    Data => 'hello world in text',
);

$alt->attach(
    Type => 'text/html',
    Data => 'hello world in <b>html</b>',
);

$entity->attach(
    Type => 'text/plain',
    Disposition => 'attachment; filename=hello.txt',
    Data => 'hello world in text and as attachment',
);

print $entity->as_string();

my $smtp = new Net::SMTP( $host, Timeout=>60, Debug=>1 );
unless (defined $smtp) {
    for ( my $i=0; $i < 5; $i++ ) {
        $smtp = new Net::SMTP( $host, Timeout=>60, Debug=>1 );
        if (defined $smtp) { last; }
    }
}

unless (defined $smtp) {
    die("cannot open connection to SMTP server @\ $host");
}

$smtp->mail( 'philipp.hasenfratz@gmx.net' );
$smtp->to( 'philipp.hasenfratz@gmx.net' );
$smtp->data();
$smtp->datasend($entity->as_string());
$smtp->dataend();
$smtp->quit();

Viele Grüsse

Philipp