webForumDet fria alternativet

HTML text i mailen.

8 svar · 206 visningar · startad av cgi

cgiMedlem sedan jan. 2000358 inlägg
#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.?

RobbanMedlem sedan dec. 19992 272 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 >

cgiMedlem sedan jan. 2000358 inlägg
#3

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

JojoxxMedlem sedan juni 20004 306 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

RobbanMedlem sedan dec. 19992 272 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 >

JojoxxMedlem sedan juni 20004 306 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

RobbanMedlem sedan dec. 19992 272 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 >

JojoxxMedlem sedan juni 20004 306 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

RobbanMedlem sedan dec. 19992 272 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 >

Genererad på 385 ms · cache AV · v20260730165559-full.f96bc7eb