Avatar billede dmg Nybegynder
28. april 2004 - 12:08 Der er 18 kommentarer og
2 løsninger

Vedr HTML i mail

Hej eksperter.

Jeg skal lave et nyhedssystem, hvorefter man udfylder diverse textboxes og så generer den noget HTML kode. Den kode skal jeg have smidt ind i en mail.

Jeg har læst de artikler der er om mail med html format her på eksperten, men jeg syntes ikke jeg kan gøre mig så klog på dem.

Jeg har kigget på http://www.pear.php.net, men kan desværre ik få skidtet til at virke.

Er der nogen der kan hjælpe mig. Indtil videre afsætter jeg 30 points. Hvis opgaven er mere bøvlet en jeg tror, afsætter jeg seøvfølgelig flere.

Det skal ik være avanceret overhovedet. Det eneste er bare sende en html mail til en email adresse.

Håber i kan hjælpe :-)
Avatar billede mickey777 Nybegynder
28. april 2004 - 12:11 #1
Avatar billede technodance.dk Nybegynder
28. april 2004 - 12:13 #2
?>
$mailto = "til@mail.dk";
$mailform = "fra@mail.dk";
$message = " her indsæter du din kode";

mail("$mailto", "$emne", $message,
    "From: $mailform\r\n" .
    "Reply-To: $mailto\r\n");
?>
Avatar billede mickey777 Nybegynder
28. april 2004 - 12:27 #3
til techodance, har du ikke et sæt " " for meget?

"$emne" ---> $emne
Avatar billede technodance.dk Nybegynder
28. april 2004 - 12:31 #4
rettet
<?
$mailto = "til@mail.dk";
$mailform = "fra@mail.dk";
$emne = "title på mailen";
$message = "her indsæter du din kode";
$headers = "from: $Mail \n";
$headers .= "Content-type: text/html";

mail("$mailto", "$emne", $message,"$headers");
?>
Avatar billede dmg Nybegynder
28. april 2004 - 12:41 #5
Nu har jeg selv lige fundet ud af det...

Men faktisk skal jeg bruge noget hjælp.

Her har i min kode:

$to = $_POST['ansvarlig'];
  $indhold = "
  <html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
    </head>
    <body>
  <style>
  body {background-color:#999999;margin:0px;padding:0px}
  table {height:100%}
  td {width:497px}
  a:link {text-decoration:none;color:#000000;}
  a:active {text-decoration:none;color:#000000;}
  a:hover {text-decoration:underline;color:#000000;text-decoration: underline;}
  .text {font-family: Verdana;font-size: 10px;padding: 20px;}
  .overskrift {font-weight:bold;font-size:12px;font-family:Verdana }
  </style>

        <table height='100%' border='0' align='center' cellpadding='0' cellspacing='0' brdcolor='#000000'>
            <tr>
                <td>
                    <table border='0' align='center' cellpadding='0' cellspacing='0' style='height:100%'>
                        <tr>
                            <td style='height:120px;padding-left:20px;font-family:verdana;font-size:x-small;vertical-align:bottom;background-image:url(http://www.mnh-profilering.dk/kromann/ans/top_bld.gif)'>Nyt fra ".$_POST['afd1']."</td>
                        </tr>

        <tr>
          <td valign='top' class='text' style='background-color:#FFFFFF'><b>".$_POST['overskrift']."</b><BR><BR><pre>".$_POST['tekst']."</pre></td>
                        </tr>
                        <tr>
                            <td height='100px'><img src='bund_bld.gif' height='100' width='600'></td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
      </body>
      </html>";

      // HTML mail

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

  mail($to, "hejsa", $indhold, $header);

Hvis nu mail klienten ikke har html slået til, skal han jo modtage en plaintext mail. hvordan kan man gøre det. Så uanset hvad ser den pæn ud når den modtages.??
Avatar billede technodance.dk Nybegynder
28. april 2004 - 12:41 #6
det gå du hurtigt her må jeg sige sorry

<?
$mailto = "til@mail.dk";
$mailform = "fra@mail.dk";
$emne = "title på mailen";
$message = "her indsæter du din kode";
$headers = "from: $mailform \n";
$headers .= "Content-type: text/html";

mail("$mailto", "$emne", $message,"$headers");
?>
Avatar billede technodance.dk Nybegynder
28. april 2004 - 12:42 #7
lav så bruger kan vælge html eller text
Avatar billede dmg Nybegynder
28. april 2004 - 12:50 #8
techodance-> jeg forstår ik hvad du mener? :-)

Nyhedsbrevet er et der bliver sendt ud til en masse mail adresser, derfor har brugereb ikke selv mulighed for at vælge html eller plaintext. Det havde jeg ellers også tænkt på. Men kan man ikke sende det i et sådant format, at det ser pænt ud også hvis brugeren ikke har html enabled?
Avatar billede technodance.dk Nybegynder
28. april 2004 - 12:51 #9
indsæt det på form siden

<input type="radio" value="html" checked name="style">html mail<br>
<input type="radio" name="style" value="text">text mail

sendmail siden nede ved "header" fjen linen
$header = "Content-type: text/html; charset=iso-8859-1";

og indsæt den her
if ($_POST[html]){
$header = "Content-type: text/html; charset=iso-8859-1";
}
if($_POST[text]){
$header = "Content-type: text/plain; charset=iso-8859-1";
}
Avatar billede technodance.dk Nybegynder
28. april 2004 - 12:52 #10
har du MSN så skal jeg lave nogle god råd til dig
Avatar billede dmg Nybegynder
28. april 2004 - 14:51 #11
technodance.dk

Jamen, man skal ikke kunne vælge html eller plainttext. Man skal bare kunne sende og hvis modtageren understøtter html vises mailen i html og hvis ikke, vil han få en mail med ren text.

Det er jo et nyhedsbrev jeg sender ud til mange mange email adresser, jeg aner ik hvad folk har sat deres mail klienter til.

Jo jeg har msn, men eftersom jeg er på arbejde kan jeg ikke komme på.

Håber du kan hjælpe :-)
Avatar billede technodance.dk Nybegynder
28. april 2004 - 14:55 #12
prøv der her.
 
  $header = "Content-type: text/plain; charset=iso-8859-1"; 
  $header .= "Content-type: text/html; charset=iso-8859-1";
  $header .= "\nFrom: " . $afsender;

  mail($to, "hejsa", $indhold, $header);
Avatar billede dmg Nybegynder
28. april 2004 - 15:28 #13
hhhmmm... mailen jeg modtager, er ren html kode.

Du skal nok få flere points for din store indsats.

<html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
    </head>
    <body>
  <style>
  body {background-color:#999999;margin:0px;padding:0px}
  table {height:100%}
  td {width:497px}
  a:link {text-decoration:none;color:#000000;}
  a:active {text-decoration:none;color:#000000;}
  a:hover {text-decoration:underline;color:#000000;text-decoration: underline;}
  .text {font-family: Verdana;font-size: 10px;padding: 20px;}
  .overskrift {font-weight:bold;font-size:12px;font-family:Verdana }
  </style>

        <table height='100%' border='0' align='center' cellpadding='0' cellspacing='0' brdcolor='#000000'>
            <tr>
                <td>
                    <table border='0' align='center' cellpadding='0' cellspacing='0' style='height:100%'>
                        <tr>
                            <td style='height:120px;padding-left:20px;font-family:verdana;font-size:x-small;vertical-align:bottom;background-image:url(http://www.mnh-profilering.dk/kromann/ans/top_bld.gif)'>Nyt fra Erhvervsret 1</td>
                        </tr>

        <tr>
          <td valign='top' class='text' style='background-color:#FFFFFF'><b>overskrift</b><BR><BR><pre>Dette er en test om det hele virker der.

mdsfds


fd
fsf
sdfdsfsdfsdfsdfdfsdffdfs
fdsffsdfdlfkdfjdskflsd</pre></td>
                        </tr>
                        <tr>
                            <td height='100px'><img src='http://www.kromannreumert.com/news/bund_bld.gif' height='100' width='600'></td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
      </body>
      </html>
Avatar billede dennismp Nybegynder
28. april 2004 - 16:26 #14
prøv med

$boundary = "asdfqwerty";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/alternative; \r\n";
$header .= "boundary=\"$boundary\"\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
$header .= "Upgrade your email client\r\n";

$body = "--$boundary\r\n";
$body .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$body .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$body .= "Textmail her...\r\n";
$body .= "--$boundary\r\n";
$body .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$body .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$body .= "<b>HTML mail</b>\r\n";
Avatar billede dmg Nybegynder
29. april 2004 - 09:15 #15
kan slet ik få det til at virke?
Avatar billede dmg Nybegynder
29. april 2004 - 09:15 #16
hvad skal jeg bruge den der body til?
Avatar billede dennismp Nybegynder
29. april 2004 - 09:35 #17
Som en del af din mail. Den skal bruges som den 3. argument til mail() (message). .. Du skal bare selv tilføje din text version og html version til body, der hvor der står "textmail her" og "<b>html mail</b>"
Avatar billede dmg Nybegynder
29. april 2004 - 10:10 #18
Jeg har nu lavet følgende:

$boundary = "asdfqwerty";
    $header = "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/alternative; \r\n";
    $header .= "boundary=\"$boundary\"\r\n";
    $header .= "Content-Transfer-Encoding: 7bit\r\n";
    $header .= "Upgrade your email client\r\n";

    $body = "--$boundary\r\n";
    $body .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
    $body .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
    $body .= "textmail her...\r\n";
    $body .= "--$boundary\r\n";
    $body .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
    $body .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
    $body .= "".$indhold."\r\n";

samt rettet: mail($to, $subject, $body, $header);

og jeg får nedenstående mail selvom min klient understøtter html:

boundary="asdfqwerty"
Content-Transfer-Encoding: 7bit
Upgrade your email client

--asdfqwerty
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

textmail her...
--asdfqwerty
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit


  <html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
    </head>
    <body>
  <style>
  body {background-color:#999999;margin:0px;padding:0px}
  table {height:100%}
  td {width:497px}
  a:link {text-decoration:none;color:#000000;}
  a:active {text-decoration:none;color:#000000;}
  a:hover {text-decoration:underline;color:#000000;text-decoration: underline;}
  .text {font-family: Verdana;font-size: 10px;padding: 20px;}
  .overskrift {font-weight:bold;font-size:12px;font-family:Verdana }
  </style>

        <table height='100%' border='0' align='center' cellpadding='0' cellspacing='0' brdcolor='#000000'>
            <tr>
                <td>
                    <table border='0' align='center' cellpadding='0' cellspacing='0' style='height:100%'>
                        <tr>
                            <td style='height:120px;padding-left:20px;font-family:verdana;font-size:x-small;vertical-align:bottom;background-image:url(http://www.kromannreumert.com/news/top_bld.gif)'>Nyt fra Erhvervsret 1</td>
                        </tr>

        <tr>
          <td valign='top' class='text' style='background-color:#FFFFFF'><b>klk</b><BR><BR><pre>gfdfdgddf</pre></td>
                        </tr>
                        <tr>
                            <td height='100px'><img src='http://www.kromannreumert.com/news/bund_bld.gif' height='100' width='600'></td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
      </body>
      </html>
Avatar billede dennismp Nybegynder
29. april 2004 - 14:35 #19
Prøv dette - husk at rette $to og $subject.

Hvis det virker, så skal du bare sætte $htmltext til din html-mail og $plaintext til din almindelig text-mail.

<?php
$boundary = uniqid("");

$header = array();
$header[] = "MIME-Version: 1.0";
$header[] = "Content-Type: multipart/alternative; boundary=\"$boundary\"";
$header[] = "Content-Transfer-Encoding: 7bit";

$to = '?';
$subject = '?';
$plaintext = 'Hej med dig';
$htmltext  = '<b>Hej</b> med <i>dig</i>';

$body = array();
$body[] = "--$boundary";
$body[] = "Content-Type: text/plain; charset=\"iso-8859-1\"";
$body[] = "Content-Transfer-Encoding: 7bit";
$body[] = '';
$body[] = $plaintext;
$body[] = "--$boundary";
$body[] = "Content-Type: text/html; charset=\"iso-8859-1\"";
$body[] = "Content-Transfer-Encoding: 7bit";
$body[] = '';
$body[] = $htmltext;

mail($to, $subject, join("\n",$body),join("\n",$header));
?>
Avatar billede dmg Nybegynder
28. oktober 2004 - 08:59 #20
lukker spørgsmålet
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