Hur gör man för att skicka med fungerande html kod i feedback formulär.
Ex, om jag skriver,
<b>Rubrik</b>
<small>bla bla..</small>
då printar den inte ut detta som vanlig text, går det att fixa så den skriver ut den som fungerande html kod.?
HTML text i mailen.
8 svar · 206 visningar · startad av cgi
Enklast genom att använda färdiga moduler för ändamålet. T.ex. MIME::Lite::HTML. Finns att ladda ner från CPAN (du behöver MIME::Lite också).
------------------
Robban < robban@lipogram.com >
OK, tack för hjälpen. ;)
... annars är det inte svårare än att i mailheadern använda;
Content-type: text/html; charset=ISO-8859-1\n
Detta förutsätter givetvis att din mailklient tillåter att du skriver en egen header.
------------------
/ J
Beror på vad man vill skicka. Skall man t.ex. bädda in bilder som skall visas så blir det ju lite knepigare än så. :)
------------------
Robban < robban@lipogram.com >
Javisst, och har man tillgång till modulen på sin server är det ju ok, men den stackare som inte har möjlighet att använda vilka moduler som hellst kan det vara bra att veta att för enbart html är det inte mer än den raden som behövs :)
------------------
/ J
Javisst, och har man tillgång till modulen på sin server är det ju ok ...
Ingen av dessa två moduler innehåller någon C-kod, så det går att ladda upp dem med FTP och köra dem direkt i nödfall. :)
Ett exempel med MIME::Lite.
När tar-filen packats upp har man en hierarki som börjar med MIME-Lite-x.x. Från den laddar man up katalogen lib med underliggande kataloger och filer. Säg att den absoluta sökvägen på servern blir /home/user/lib.
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
#!/usr/bin/perl -w
use lib '/home/user/lib';
use MIME::Lite;
# Skapa ett MIME::Lite-objekt.
$msg = MIME::Lite->new(
To =>'foo@bar.com',
Subject =>'Ett litet test',
Type =>'multipart/related'
);
# Lägg till HTML-dokumentet
$msg->attach(Type => 'text/html',
Data => qq{ <body>
<p>En <b>oootroligt</b> snygg bild</p>
<img src="cid:bild.gif">
</body> }
);
# Lägg till bilden
$msg->attach(
Type => 'image/gif',
Id => 'bild.gif',
Path => '/path/to/bild.gif',
);
# Skriv ut vad som kommer skickas
$msg->print();
# Skicka mail
$msg->send();
</font>
------------------
Robban < robban@lipogram.com >
Det behöver väl inte till C-kod för att det inte skall fungera (även om det fungerar i detta fall). libnet exempelvis vet jag vill bli konfigurerad först innan man kan använda det (när det installeras med PPM). ... och jag hävdar fortfarande att är det bara html man vill åt är det enklare att skriva en rad i headern med den mailklient man nu har. :)
Men jag håller med om att "din" variant är snyggare, och att föredra om det går. Någon gång vill man säkert ha med en bild.
------------------
/ J
Det behöver väl inte till C-kod för att det inte skall fungera ...
Vad jag syftade på är att rätt många moduler delvis är skrivna i C (för snabbhet, eller för att komma åt underliggande API:er), och då går det inte att göra som jag beskriver eftersom C-koden måste kompileras. Då måste man installera på "traditionellt" vis.
Men handlar det om rena Perl-moduler så går det oftast att göra som jag beskriver.
------------------
Robban < robban@lipogram.com >