Avatar billede iceicepepsi Nybegynder
25. december 2012 - 18:46 Der er 19 kommentarer og
1 løsning

php mail html

hej er der nogen der kan hjælpe mig jeg for søger at få php mail til at sende en html mail den sender også mailen men viser det som koder kan nogen se hvad der er galt har prøver og prøvet men må give op

if(isset($_POST['recover'])){
    $form = 1;
    $email = $db->EscapeString($_POST['email']);
    $sql = $db->Query("SELECT username,email,password FROM `users` WHERE `email`='".$email."'");
    $recover = $db->FetchArray($sql);
    if($db->GetNumRows($sql) == 0){
        $message = '<div class="msg error">We haven\'t found this email in our database!</div>';
    }else{
        $message = '<div class="msg success">Password was successfully sent to your email address!</div>';
        $msg = '
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
<!--
@media only screen and (max-device-width: 480px) {#wrapper {width: 100% !important;} }
@media only screen and (max-device-width: 240px) {#wrapper {width: 100% !important;} }
-->
</style>
</head>
<body>
<center>
<div style="max-width:600px;display:block;margin: 20px auto 0px auto;" id="wrapper">
<div class="contentArea" id="contentArea1">
<table cellspacing="0" border="0" cellpadding="0" align="center" width="600" style="max-width:600px; width:600px; background-color: #000000;" id="headerTbl">
<tr>
  <td align="center" valign="middle" width="600" style="line-height: 0">
  <img border="0" src="http://member.wingisites.com/images/logo.png" style="display:block">
  </td>
</tr>
</table>
<style type="text/css"><!-- #subheader a, .subheader a {color: #FF0000 !important;} --></style>
<table cellspacing="0" border="0" cellpadding="0" align="center" style="max-width:600px; width:600px;" id="contentTbl">
<tr>
  <td align="left" valign="middle" width="600" style="padding: 10px 20px; background-color: #0000CC; color: #00FF33;" id="subheader" class="subheader">
  klub wingisites det her det sker
  </td>
</tr>
<tr>
  <td style="background-color: #999999;">
  <table cellspacing="0" border="0" style="max-width:600px; width:600px;" align="center" cellpadding="20" width="600">
  <tr>
    <td>
    <style type="text/css"><!-- #innerTxt a, .innerTxt a {color: #66FF00 !important;} --></style>
      <table  width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td align="left" valign="top" height="300" id="innerTxt" class="innerTxt" style="color: #FF0000;">
        vi har motaget din email vi vil besvare den hurtigt muligt
        </td>
      </tr>
      </table>
    </td>
  </tr>
  </table>
  </td>
</tr>
</table>
</div>
<table cellpadding="2" cellspacing="0" width="600" align="center">
<tr>
  <td width="150" align="center">
  </td>
  <td width="450" align="center">
  <font size="-1">
  <br><br>
  <b>klub wingisites</b><br>
  Kenneth Hedelund
    postboks 81
  5700 Svendborg<br>
  </font>
  </td>
</tr>
</table>
</div>
</center>
<!-- HubSpot Email Marketing template: "Harvard" version: "1.2" timestamp: 1356449845 -->
</body></html>
';

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = 'From: admin@wingisites.com' . "\r\n";

mail($recover['email'], "Your Password", $msg, $headers);
Avatar billede olebole Juniormester
25. december 2012 - 18:50 #1
<ole>

Hvad tjekker du med? Mange e-mail-klienter er saqt op til ikke at vise HTML.

Derudover kunne det skyldes, at HTTP-headers er case sensitive. Der skal stå 'Content-Type'

/mvh
</bole>
Avatar billede iceicepepsi Nybegynder
25. december 2012 - 19:32 #2
det ved jeg ikke jeg bruger gmail og motager mange html mail dagligt der virker fint og så prøver jeg selv at lave html mail med den kode som jeg skiv og den vil gmail ikke vise kun som koder
så der må være en fejl i min kode og det var den jeg prøvet at finde som jeg ikke kunne der for bad jeg om hjælp der jeg ikke kan finde ud af så noget men skal bruge det
Avatar billede olebole Juniormester
25. december 2012 - 19:46 #3
- og du har naturligvis, allerede inden du svarede mig, testet, hvad jeg skrev i #1. Hvad fik du ud af det?
Avatar billede olebole Juniormester
25. december 2012 - 19:52 #4
Men dette hænger da ikke sammen:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

- og:

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Hvilket tegnsæt er din DB sat til at bruge og hvilken encoding gemmer du dine filer med?
Avatar billede iceicepepsi Nybegynder
25. december 2012 - 20:08 #5
jeg forstår ikke hvad du mener med (Hvilket tegnsæt er din DB sat til at bruge og hvilken encoding gemmer du dine filer med?)
Avatar billede olebole Juniormester
25. december 2012 - 20:37 #6
Din editor kan sættes op til at gemme dine filer med forskellige encodings. Tjek dokumentationen på din editor for at finde ud af, hvor det gøres.

Din database er sat op til at køre med et bestemt tegnsæt. Det sker dels med MySQL's default_charset og dels de enkelte tabbelr/felters collations.

Hvad det hele skal sættes til, ved kun du. Du bør tage en beslutning om, hvad du vil bruge (i dag er utf-8 de facto standard i vores del af verden), og så bruge det overalt i din applikation.

At have grundigt styr på, hvad tegnsæt er, og hvordan de bruges, er en forudsætning for at skrive en moderne webapplikation. Det bør du nok læse lidt op på  *o)
Avatar billede iceicepepsi Nybegynder
25. december 2012 - 20:55 #7
kan se de andre filer + mysql + editor køre
UTF-8 så kan ikke se hvad jeg gør forkert
Avatar billede olebole Juniormester
25. december 2012 - 21:04 #8
Sålænge du ikke svarer på det, du bliver spurgt om, er der ingen andre, der kan vide det.

Du har stadig ikke svaret på, om det gjorde nogen forskel at rette koden, som jeg foreslog i #1. Det skyldes forhåbentlig ikke, du stadig ikke har prøvet?
Avatar billede iceicepepsi Nybegynder
25. december 2012 - 21:12 #9
har set #1 du skiver (Derudover kunne det skyldes, at HTTP-headers er case sensitive. Der skal stå 'Content-Type') men kunne du uddybe hvilket kode du mener og hvor den skal rettes henne
Avatar billede olebole Juniormester
25. december 2012 - 21:19 #10
Må jeg anbefale, du f.eks. prøver at kikke i din kode?
Avatar billede iceicepepsi Nybegynder
25. december 2012 - 21:36 #11
Har ændret det til "Content-Type" nu og både $headers og http-equiv er sat til "charset=UTF-8"
Avatar billede iceicepepsi Nybegynder
25. december 2012 - 22:35 #12
det virker ikke
Avatar billede olebole Juniormester
25. december 2012 - 23:14 #13
Det lyder sært, at det står som kode, når det når frem. Prøv at sende med denne kode i stedet:

function escapeAddr($addr) {
    $check = preg_match('/(.*)<(.*)>/', $addr, $a);
    if ($check) $addr = '=?UTF-8?B?'.base64_encode($a[1]).'?= <'.$a[2].'>';
    return $addr;
}
function mail_utf8($to, $subject='Intet emne', $message='', $from='', $type='plain', $cc='', $bcc='') {
    $from = escapeAddr($from);
    $header = 'From: '.$from.PHP_EOL
            . 'Return-Path: '.$from.PHP_EOL
            . 'Reply-To: '.$from.PHP_EOL
            . 'MIME-Version: 1.0'.PHP_EOL
            . 'Content-Type: text/'.$type.'; charset=UTF-8'.PHP_EOL
            . 'X-Mailer: PHP/'.phpversion().PHP_EOL
            . 'Content-Transfer-Encoding: 8bit'.PHP_EOL;
    if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL;
    if ($bcc!='') $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL;
    $header .= PHP_EOL;
    return mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header);
}

// Eksempel på brug med dine variabler/værdier:
mail_utf8($recover['email'], 'Your password', $msg, 'admin@wingisites.com', 'html');
Avatar billede iceicepepsi Nybegynder
25. december 2012 - 23:22 #14
Kan du ikke selv flette den ind i det her så det virker for forstår virkelig ikke hvad jeg skal skifte ud:

if(isset($_POST['recover'])){
    $form = 1;
    $email = $db->EscapeString($_POST['email']);
    $sql = $db->Query("SELECT username,email,password FROM `users` WHERE `email`='".$email."'");
    $recover = $db->FetchArray($sql);
    if($db->GetNumRows($sql) == 0){
        $message = '<div class="msg error">We haven\'t found this email in our database!</div>';
    }else{
        $message = '<div class="msg success">Password was successfully sent to your email address!</div>';
        $msg = '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
<!--
@media only screen and (max-device-width: 480px) {#wrapper {width: 100% !important;} }
@media only screen and (max-device-width: 240px) {#wrapper {width: 100% !important;} }
-->
</style>
</head>
<body>
<center>
<div style="max-width:600px;display:block;margin: 20px auto 0px auto;" id="wrapper">
<div class="contentArea" id="contentArea1">
<table cellspacing="0" border="0" cellpadding="0" align="center" width="600" style="max-width:600px; width:600px; background-color: #000000;" id="headerTbl">
<tr>
  <td align="center" valign="middle" width="600" style="line-height: 0">
  <img border="0" src="http://member.wingisites.com/images/logo.png" style="display:block">
  </td>
</tr>
</table>
<style type="text/css"><!-- #subheader a, .subheader a {color: #FF0000 !important;} --></style>
<table cellspacing="0" border="0" cellpadding="0" align="center" style="max-width:600px; width:600px;" id="contentTbl">
<tr>
  <td align="left" valign="middle" width="600" style="padding: 10px 20px; background-color: #0000CC; color: #00FF33;" id="subheader" class="subheader">
  klub wingisites det her det sker
  </td>
</tr>
<tr>
  <td style="background-color: #999999;">
  <table cellspacing="0" border="0" style="max-width:600px; width:600px;" align="center" cellpadding="20" width="600">
  <tr>
    <td>
    <style type="text/css"><!-- #innerTxt a, .innerTxt a {color: #66FF00 !important;} --></style>
      <table  width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td align="left" valign="top" height="300" id="innerTxt" class="innerTxt" style="color: #FF0000;">
        vi har motaget din email vi vil besvare den hurtigt muligt
        </td>
      </tr>
      </table>
    </td>
  </tr>
  </table>
  </td>
</tr>
</table>
</div>
<table cellpadding="2" cellspacing="0" width="600" align="center">
<tr>
  <td width="150" align="center">
  </td>
  <td width="450" align="center">
  <font size="-1">
  <br><br>
  <b>klub wingisites</b><br>
  Kenneth Hedelund
    postboks 81
  5700 Svendborg<br>
  </font>
  </td>
</tr>
</table>
</div>
</center>
<!-- HubSpot Email Marketing template: "Harvard" version: "1.2" timestamp: 1356449845 -->
</body></html>
';

        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers  = 'Content-Type: text/html; charset=utf-8' . "\r\n";
        $headers = 'From: admin@wingisites.com' . "\r\n";

        mail($recover['email'], "Your Password", $msg, $headers);
    }
}
Avatar billede olebole Juniormester
25. december 2012 - 23:31 #15
Jo, det kan jeg sagtens, men du lærer jo ikke noget ved, at jeg laver det hele for dig
Avatar billede iceicepepsi Nybegynder
25. december 2012 - 23:34 #16
Nej men som sagt er jeg helt lost i hvad jeg skal udskifte. :(
Avatar billede olebole Juniormester
25. december 2012 - 23:43 #17
Så sidder du og roder med noget, du slet ikke kan overskue. Så må du lave et nyt dokument, hvor du tester, om du overhovedet kan sende en HTML-mail:

<?php
function escapeAddr($addr) {
    $check = preg_match('/(.*)<(.*)>/', $addr, $a);
    if ($check) $addr = '=?UTF-8?B?'.base64_encode($a[1]).'?= <'.$a[2].'>';
    return $addr;
}
function mail_utf8($to, $subject='Intet emne', $message='', $from='', $type='plain', $cc='', $bcc='') {
    $from = escapeAddr($from);
    $header = 'From: '.$from.PHP_EOL
            . 'Return-Path: '.$from.PHP_EOL
            . 'Reply-To: '.$from.PHP_EOL
            . 'MIME-Version: 1.0'.PHP_EOL
            . 'Content-Type: text/'.$type.'; charset=UTF-8'.PHP_EOL
            . 'X-Mailer: PHP/'.phpversion().PHP_EOL
            . 'Content-Transfer-Encoding: 8bit'.PHP_EOL;
    if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL;
    if ($bcc!='') $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL;
    $header .= PHP_EOL;
    return mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header);
}


$msg = "<html><head><title>Test</title></head><body><h1>Testing</h1></body></html>";
// Eksempel på brug med dine variabler/værdier:
mail_utf8('test_adresse@gmail.com', 'Your password', $msg, 'admin@wingisites.com', 'html');
?>

Når det lykkes, kan du gå videre og sætte databasekoden ind. Når det fungerer, kan du gå videre ved at lægge din lange $msg ind i stedet for min korte.

Få styr på én ting ad gangen. Ellers lærer du aldrig at kode  *o)
Avatar billede iceicepepsi Nybegynder
26. december 2012 - 00:09 #18
Koden virker... Men jeg ved stadig ikke hvordan jeg skal implementere i den anden kode.. Vil du ikke nok være at sød at gøre det?
Avatar billede iceicepepsi Nybegynder
26. december 2012 - 02:35 #19
tak olebole jeg fik det til at virke den kode var super :-)
Avatar billede iceicepepsi Nybegynder
04. januar 2013 - 22:26 #20
lukker
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