HTML-Mail zur TEXT-Mail konvertieren
Jan
Hi Leute,
ich möchte eine in sendmail eingehende E-Mail (auch text/html) automatisch in eine text/plain-Nachricht konvertieren. Es ist doch bestimmt möglich, dies mit einem Perl Modul zu tun. Nur welches?
Na ja,
wenn Du nur die Tags entfernen möchtest reicht das hier:
$content =~ s/(<[^<]+>)//g;
ich möchte eine in sendmail eingehende E-Mail (auch text/html) automatisch in eine text/plain-Nachricht konvertieren. Es ist doch bestimmt möglich, dies mit einem Perl Modul zu tun. Nur welches?
Hi all!
Vorsicht, vorsicht!!!
$content =~ s/(<[^<]+>)//g;
das ist zu gierig!!!!!
nehmt lieber =~ s/(<[^<]+?>)//gs;
?=nongredy
s=single line
? sonst wird < vom erste und > letzten tag genommen!
s klappt bei tags die über ne Zeile hinaus gehen
Tschuess Rolf
Hi again?
Sorry, mal wieder schneller gepostet als nachgedacht!
$content =~ s/(<[^<]+>)//g;
klappt schon, weil startendes < ja verboten
$content=~ s/(<.+?>)//gs;
ist die variante für schreibfaule, wie mich ;)
Tschuess
Ro *schweigen wär gold, wenn ...*lf
Hi again?
Sorry, mal wieder schneller gepostet als nachgedacht!
$content =~ s/(<[^<]+>)//g;
klappt schon, weil startendes < ja verboten
$content=~ s/(<.+?>)//gs;
Noch besser und vor allem sicherer wäre aber das HTML-Modul, in manchen Fällen ist der obere Ausdruck nämlich falsch (z.b. bei Javascripts und Kommentaren, die < od. > enthalten oder ähnlichem).
Daher:
use HTML::Parse;
use HTML::FormatText;
$text = HTML::FormatText->new->format(parse_html($content));
Grüße,
Crunch