Avatar billede mesteren_selv Nybegynder
26. februar 2006 - 22:56 Der er 15 kommentarer og
1 løsning

Sender ikke HTML-delen

Hej... Jeg har en side med et mailscript, og en textarea hvor indholdet bliver sat ind i en html og sendt med mail()...

For let at kunne vælge imellem flere skrifttyper har jeg lavet en for-løkke der oversætter fx. [o] til <font face='blabla' size='2'> osv.... Men efter jeg satte den løkke ind i mit script får jeg kun tomme mails fra det.

Det mærkelige er at hvis jeg echo'er min $message variabel (altså den med HTML i) så ser den helt rigtig ud...

Hjælp!!! Og på forhånd tak---
Avatar billede mesteren_selv Nybegynder
26. februar 2006 - 22:59 #1
PS: Den sender til den rigtige adresse, og med det rigtige subject, hvilket også bliver indtastet i text-felter i min form...
Avatar billede thesurfer Nybegynder
26. februar 2006 - 23:52 #2
Jeg tror at vi skal se noget kode.. du kan bare skjule din email adresse (o.lign) med "xxxxxxx"..

/theSurfer
Avatar billede mesteren_selv Nybegynder
26. februar 2006 - 23:55 #3
if ($_POST['modtager']) {
$to = $_POST['modtager'];

$subject = $_POST['emne'];

$text = nl2br($_POST['mess']);

for ($i = 0; $i <= strlen($text); ) {
    $str = $text[$i].$text[$i+1].$text[$i+2];
    if ($str == "[o]") {
        $text_ny .= "<font face='Verdana, Arial, Helvetica, sans-serif' size='2'><strong>";
        $i = $i + 3;
    } elseif ($str == "[x]") {
        $text_ny .= "</strong></font>";
        $i = $i + 3;
    } elseif ($str == "[b]") {
        $text_ny .= "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#00618B'><strong>";
        $i = $i + 3;
    } else {
        $text_ny .= $text[$i];
        $i++;
    }
}
//echo $text_ny."<br><br>";

$message = "<html>
<head>
<title>Untitled Document</title>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
</head>
<style type='text/css'>
<body>
<table width='595' border='0' cellspacing='10'><!--DWLayoutTable-->
  <tr>
    <td width='108' rowspan='2' valign='top' nowrap bgcolor='#0081BA'><img src='http://mailscript.eg-fjord.dk/DIVA_mailhoved_DK2.jpg' width='109' height='217' border='0'></td>
    <td valign='top' nowrap><img src='http://mailscript.eg-fjord.dk/bg_white.jpg'></td>
  </tr>
  <tr>
    <td nowrap valign='top'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>".$text_ny."</font></td>
  </tr>
</table>
</body>
</html>
";

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: <$to>\r\n";
$headers .= "From: Kunstrådet <fra@mail.dk>\r\n";

mail($to, $subject, $message, $headers);

echo "Meddelelsen er afsendt til: ".$_POST['modtager'];
Avatar billede mesteren_selv Nybegynder
26. februar 2006 - 23:57 #4
ups... nu glemte jeg at skjule linket
Avatar billede mesteren_selv Nybegynder
27. februar 2006 - 00:01 #5
Ændret!
Avatar billede thesurfer Nybegynder
27. februar 2006 - 00:06 #6
Jeg tror at problemet er her:

    <td nowrap valign='top'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>.$text_ny.</font></td>

Den forsætter åbenbart ikke rigtig..

Prøv at fjerne "" så det ser sådan ud:

    <td nowrap valign='top'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>.$text_ny.</font></td>

/theSurfer
Avatar billede thesurfer Nybegynder
27. februar 2006 - 00:07 #7
Eller del det op i 3 stykker:

del 1: fra <html> og til "...sans-serif' size='1'>"
del 2: $text_ny
del 3: fra </font></td> til </html>";

/theSurfer
Avatar billede mesteren_selv Nybegynder
27. februar 2006 - 00:08 #8
Nej... Det er vigtigt at de er der...! $text er jo en php-variabel! Resten er en string
Avatar billede mesteren_selv Nybegynder
27. februar 2006 - 00:10 #9
Det virkede fint nok før jeg lavede for-løkken, så det må være i den problemet ligger.
Før så den sådan ud:

if ($_POST['modtager']) {
$to = $_POST['modtager'];

$subject = $_POST['emne'];

$text = nl2br($_POST['mess']);

$message = "<html>
<head>
<title>Untitled Document</title>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
</head>
<style type='text/css'>
<body>
<table width='595' border='0' cellspacing='10'><!--DWLayoutTable-->
  <tr>
    <td width='108' rowspan='2' valign='top' nowrap bgcolor='#0081BA'><img src='http://mailscript.eg-fjord.dk/DIVA_mailhoved_DK2.jpg' width='109' height='217' border='0'></td>
    <td valign='top' nowrap><img src='http://mailscript.eg-fjord.dk/bg_white.jpg'></td>
  </tr>
  <tr>
    <td nowrap valign='top'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>".$text."</font></td>
  </tr>
</table>
</body>
</html>
";

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: <$to>\r\n";
$headers .= "From: Kunstrådet <fra@mail.dk>\r\n";

mail($to, $subject, $message, $headers);

echo "Meddelelsen er afsendt til: ".$_POST['modtager'];
Avatar billede thesurfer Nybegynder
27. februar 2006 - 00:10 #10
Jeg ved godt at det er en variabel :-)

Prøv det her:

$message = "virk dammit";
$headers  = "MIME-Version: 1.0\r\n";
// resten af koden her...

/theSurfer
Avatar billede mesteren_selv Nybegynder
27. februar 2006 - 00:13 #11
Så virker det...! Det har jg nemlig prøvet... Det sjover er at hvis jeg skriver:
echo $message;
efter $message er blevet defineret, kommer den pågældende html-side frem så nydeligt
Avatar billede thesurfer Nybegynder
27. februar 2006 - 00:15 #12
Er du sikker på, at du ikke skal have din $i i din FOR..? :-)

F.eks.:
for ($i = 0; $i <= strlen($text); $i++) {

/theSurfer
Avatar billede thesurfer Nybegynder
27. februar 2006 - 00:17 #13
Ahh..

/theSurfer
Avatar billede doc404 Novice
27. februar 2006 - 00:17 #14
i stedet for dit loop kan du lave følgende. Giver lidt mere overskuelighed og er nemmere at udvidde senere.

$tokens = array("[o]","[x]","[b]");
$values = array(
  "<font face='Verdana, Arial, Helvetica, sans-serif' size='2'><strong>",
  "</strong></font>",
  "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#00618B'><strong>");

$text = str_replace($tokens,$values,$text);
Avatar billede mesteren_selv Nybegynder
27. februar 2006 - 00:28 #15
Hmmm.... Tak for den... Men det virker stadig ikke...
Avatar billede mesteren_selv Nybegynder
23. maj 2006 - 16:53 #16
Endte med at lykkedes
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester