Avatar billede artico Novice
24. marts 2006 - 11:27 Der er 16 kommentarer og
1 løsning

send HTML mail

Jeg har nedenstående som jeg gerne vil sende i HTML mail, jeg har forsøgt at sende  det med:

mailindhold 'HVOR KODEN VAR HER'; // Men det gav Resourcefejl#19

Hvordan gør jeg :-)

--- Kode jeg vil sende i HTML mail:

// Udskriver ordre linier
                                $result_varelinier = mysql_query("select
                               
                                kunde_ordre.id,
                                kunde_ordre.ordre_total_kr,
                                kunde_ordre.ordre_status,
                                kunde_ordre_linier.id,
                                  kunde_ordre_linier.ordre_id,
                                  kunde_ordre_linier.ordre_nr,
                                  kunde_ordre_linier.kunde_id,
                                  kunde_ordre_linier.vare_id,
                                  kunde_ordre_linier.vare_antal,
                                  kunde_ordre_linier.salgspris,
                                  kunde_ordre_linier.ordre_dato,
                                 
                                  vare.id,
                                  vare.varenavn

                                  FROM kunde_ordre, kunde_ordre_linier, vare

                                  WHERE kunde_ordre.id=$id
                                 
                                  AND kunde_ordre.id = kunde_ordre_linier.ordre_id
                                 
                                  AND kunde_ordre_linier.vare_id = vare.id
                                  AND kunde_ordre.ordre_status < 6
                                  GROUP BY vare.id
                                 
                                  ")or die (mysql_error());


echo " <table width=\"100%\" cellpadding=\"4\" cellspacing=\"0\" border=\"0\" class=\"bestil_table\">";

      echo " <tr class=\"bestil_td_over\" >";
    echo " <td class=\"bestil_td_over\">Antal</td>";                                       
    echo " <td class=\"bestil_td_over\">Varenavn</td>";
   
    echo " <td class=\"bestil_td_over\" width=\"130\">a´pris</td>";
    echo " <td class=\"bestil_td_over\" width=\"130\" align=\"right\">Ialt</td>";
   
    echo "</tr>";
if (mysql_num_rows($result_varelinier) > 0) {
    while($row_varelinier = mysql_fetch_assoc($result_varelinier)) {

    echo "    <tr >\n";
    echo "    <td class=\"bestil_td\" width=\"60\" align=\"center\">$row_varelinier[vare_antal]</td>\n";
    echo "    <td class=\"bestil_td\" width=\"90%\">$row_varelinier[varenavn]</td>\n";
   
    $row_varelinier['salgspris3'] =  number_format($row_varelinier['salgspris'], 2, ',', ' ');                       
    echo "    <td class=\"bestil_td\" align=\"right\" width=\"130\">$row_varelinier[salgspris3]</td>\n";

$varelinie_total = $row_varelinier['vare_antal'] * $row_varelinier['salgspris'];
$momsbelob = $row_varelinier[ordre_total_kr] * 0.20 ;
$momsbelob2 = number_format($momsbelob, 2, ',', ' ');

$varelinie_total2 = number_format($varelinie_total, 2, ',', ' ');


    echo "    <td class=\"bestil_td\" align=\"right\" width=\"130\" >$varelinie_total2</td>\n";
    echo "    </tr>";

      } 
        }
 
    echo "    <tr height=\"30\">";
    echo "    <td colspan=\"2\" class=\"bestil_td\" align=\"left\" width=\"150\">Heraf 25% moms</td>";
    echo "    <td colspan=\"2\" class=\"bestil_td\" align=\"left\">$momsbelob2</td>";
    echo "    </tr>";
   
$_SESSION['ordreTotal2'] = number_format($_SESSION['ordreTotal'], 2, ',', ' '); 
   
    echo "    <tr height=\"30\">";
    echo "    <td colspan=\"4\" class=\"bestil_td\" >";
   
    echo "<table border=\"0\" width=\"100%\" cellpadding=\"4\" cellspacing=\"0\">";
    echo "<tr>";
    echo "<td align=\"left\"><b>Samlet ordrebeløb</b></td>";
    echo "<td align=\"right\"><b>$_SESSION[ordreTotal2]</b></td>";
    echo "</tr>";
    echo "</table>";
   
    echo "</td>";
   
    echo "    </tr>";
  echo "</table>";
Avatar billede jakobdo Ekspert
24. marts 2006 - 13:37 #1
Har du kigget på siden: http://dk.php.net/manual/en/function.mail.php -> Example 4. Sending HTML email

Prøv at start med at send en simpel email, det kan jo være en fejl i din kode...
Så start simpelt og udbyg når det virker.
Avatar billede artico Novice
24. marts 2006 - 17:28 #2
Ok, men det går fint med at sende en simpel mail og med "simple" dataudtræk fra dbén :-) problemet er når jeg som herover vil udtrække fra DB og hvor der er flere resultater :-( der skal sendes med i HTML mailen....
Avatar billede fixbabe Nybegynder
24. marts 2006 - 17:35 #3
jakobdo - Jeg har prøvet det script af du snakker om "nr 4" og mit outlook viser den ikke som html selv om den viser andre "html" mail
Avatar billede jakobdo Ekspert
24. marts 2006 - 21:35 #4
Hvor har du webhotel?
Avatar billede fixbabe Nybegynder
24. marts 2006 - 23:15 #5
Surftown
Avatar billede jakobdo Ekspert
24. marts 2006 - 23:17 #6
Fixbabe, prøv at ret \r\n til \n
Avatar billede artico Novice
25. marts 2006 - 08:14 #7
Nu er jeg kommet til følgende, men hvordan får jeg "løftet" $output ud herfra og ind i $mailindhold = '$output'; // Her kommer der kun den sidste post ?

----
$num_rows = mysql_num_rows($result1);
$count = "1";
// test array
$outs = array();
while ($row1 = mysql_fetch_array($result1)) {
$output = "$row1[vare_id], $row1[varenavn], $row1[vare_antal], $row1[salgspris]<br> ";
if ($count < $num_rows) { $output .= "<br>"; }
// flyt denne output til HTML ??

echo $output; // virker fint her, men skal over i $mailindhold ?
  $count++;

}
Avatar billede jakobdo Ekspert
25. marts 2006 - 10:02 #8
Hvad med:

$mailindhold .= $output;
Avatar billede artico Novice
25. marts 2006 - 10:15 #9
altså istedet for echo $output; ? probl. er at $output kun viser sidste værdi uden for tuborghattene...
Avatar billede jakobdo Ekspert
25. marts 2006 - 10:40 #10
I stedet for echo:
echo "<table>";

Skal du lave:
$output .= "<table>";

Så vil alt som tidliger blev udskrevet, gemt i $output;
Avatar billede artico Novice
26. marts 2006 - 17:33 #11
OK, men jeg fatter stadig ikke helt hvad du mener ... hele siden ser således ud nu, og $output kommer ikke med i HTML delen? Please Help :-)

$ordre_nr = $_GET['send_ordre'];
$id = $_GET['id'];

$modtager = "$_SESSION[email]"; // Modtageren for emailen
$afsender = "domæne <info@domæne.dk>"; // afsender, inkl. afsenders mailadr.
$subject  = "Ordrebekræftelse"; // Emnet for mailen.

// ##### OPRETTER HTML MAILEN #####

$output .= "<head>";
$output .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">";
$output .= "<link rel=\"stylesheet\" href=\"http://www.dom.dk/style.css\" type=\"text/css\">";
$output .= "</head>";
$output .= "<body topmargin=\"0\">";
$output .= "<table width=\"700px\" border=\"0\" cellspacing=\"2\" cellpadding=\"4\" style=\"border-collapse: collapse\">";
$output .= "<tr height=\"35\">";
$output .= "<td height=\"35\"><b>'.$_SESSION[navn].'</b></td>";
$output .= "<td height=\"35\"><b>$output</b></td>";
$output .= "<td height=\"35\"><b>kommer noget i gennem</b></td>";
$output .= "</tr>";
$output .= "</table>";

$header = "Content-type: text/html; charset=iso-8859-1";
$header .= "\nFrom: " . $afsender;

$result = mysql_query("SELECT  kunde_ordre.id,
                                  kunde_ordre.ordre_nr,
                                  date_format(kunde_ordre.ordre_dato, '%d.%m.%Y ') AS ordre_dato2,
                                  kunde_ordre.ordre_total_kr,
                                  kunde_ordre.kunde_id,
                                  kunde_ordre.kunde_navn,
                                  kunde_ordre.kunde_email,
                                  kunde_ordre.betalingsmiddel,
                                  kunde_ordre.betalt_kr,
                                  kunde_ordre.ordre_notat,
                                  kunde_ordre.ordre_status,
                                 
                                  kunder.id,
                                  kunder.navn,
                                  kunder.adresse,
                                  kunder.postnr,
                                  kunder.postby,
                                  kunder.email
                                 
                                 
                                  FROM kunde_ordre, kunder
                                  WHERE kunde_ordre.id = $id
                                  AND kunde_ordre.ordre_status < 6
                                  AND kunde_ordre.kunde_id=kunder.id
                                  GROUP BY kunde_ordre.id
                                  ") or die(mysql_error());


if (mysql_num_rows($result) > 0) {
    while($row = mysql_fetch_assoc($result)) {
 
 
$_SESSION['ordreId'] = $row['id'];
$_SESSION['ordreNr'] = $row['ordre_nr'];
$_SESSION['ordreDato'] = $row['ordre_dato2'];
$_SESSION['kundeId'] = $row['kunde_id'];

$_SESSION['betalingsMiddel'] = $row['etalingsmiddel'];
$_SESSION['ordreNotat'] = $row['ordre_notat'];

$_SESSION['navn'] = $row['navn'];
$_SESSION['adresse'] = $row['adresse'];
$_SESSION['postNr'] = $row['postnr'];
$_SESSION['postBy'] = $row['postby'];
$_SESSION['email'] = $row['email'];
$_SESSION['ordreTotal'] = $row['ordre_total_kr'];
     
}
    }

// Udskriver ordre linier
                                $result1 = mysql_query("select
                               
                                kunde_ordre.id,
                                kunde_ordre.ordre_total_kr,
                                kunde_ordre.ordre_status,
                                kunde_ordre_linier.id,
                                  kunde_ordre_linier.ordre_id,
                                  kunde_ordre_linier.ordre_nr,
                                  kunde_ordre_linier.kunde_id,
                                  kunde_ordre_linier.vare_id,
                                  kunde_ordre_linier.vare_antal,
                                  kunde_ordre_linier.salgspris,
                                  kunde_ordre_linier.ordre_dato,
                                 
                                  vare.id,
                                  vare.varenavn

                                  FROM kunde_ordre, kunde_ordre_linier, vare

                                  WHERE kunde_ordre.id=$id
                                 
                                  AND kunde_ordre.id = kunde_ordre_linier.ordre_id
                                 
                                  AND kunde_ordre_linier.vare_id = vare.id
                                  AND kunde_ordre.ordre_status < 6
                                  GROUP BY vare.id
                                 
                                  ")or die (mysql_error());
                                 
$num_rows = mysql_num_rows($result1);
$count = "1";
while ($row1 = mysql_fetch_array($result1)) {
$output = "$row1[vare_id], $row1[varenavn], $row1[vare_antal], $row1[salgspris]<br> ";
if ($count < $num_rows) { $output .= "<br>"; }


echo $output; // Det er så disse værdier der skal "op" i HTML Mailen
  $count++;
  }
Avatar billede jakobdo Ekspert
26. marts 2006 - 17:40 #12
Du mangler jo funktionen: mail()
Prøv nederst at lav:

mail($modtager,$subject,$output,$header);
Avatar billede artico Novice
26. marts 2006 - 18:23 #13
Ok, der virker fint med at den sender en mail, meeeeen der kommer stadig kun den sidste værdi i $output med i mailen..

og når jeg echoer den på siden som her, så vises alle værdierne der er i den fint:

echo $output; // Det er så disse værdier der skal "op" i HTML Mailen
Avatar billede jakobdo Ekspert
26. marts 2006 - 18:24 #14
Du skal rette:
$output = "$row1[vare_id], $row1[varenavn], $row1[vare_antal], $row1[salgspris]<br> ";
til:
$output .= "$row1[vare_id], $row1[varenavn], $row1[vare_antal], $row1[salgspris]<br> ";
Avatar billede artico Novice
26. marts 2006 - 19:00 #15
Yessssssssssssssssssss, nu kører det! Fedt jeg klarer mig selv herfra :-))
Send et svar!!!!
Avatar billede jakobdo Ekspert
26. marts 2006 - 19:03 #16
Svar sendt herfra...
Avatar billede jakobdo Ekspert
26. marts 2006 - 19:23 #17
Takker for point.
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