webForumDet fria alternativet

HTML text i mailen.

Perl & Ruby

8 svar · 208 visningar · startad av cgi

Medlem sedan jan. 2000371 inlägg
Frågan#1

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.?

Medlem sedan dec. 19992 555 inlägg
#2

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 >

Medlem sedan jan. 2000371 inlägg
#3

OK, tack för hjälpen. ;)

Medlem sedan juni 20004 308 inlägg
#4

... 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

Medlem sedan dec. 19992 555 inlägg
#5

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 >

Medlem sedan juni 20004 308 inlägg
#6

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

Medlem sedan dec. 19992 555 inlägg
#7

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 >

Medlem sedan juni 20004 308 inlägg
#8

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

Medlem sedan dec. 19992 555 inlägg
#9

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 >

258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)