Avatar billede [tpl]foxy Nybegynder
22. oktober 2008 - 09:35 Der er 11 kommentarer

utf-8 med phpmail

Hej eksperter,

Jeg har lidt problemer med en mailer jeg har bikset sammen, som ikke vil skrive æøå i mailen, men i stedet udskifter å med Ã¥.

koden er som følger:

<?php
if (isset($_POST['navn']) && isset($_POST['adresse']) && isset($_POST['postnr']) && isset($_POST['by']) && isset($_POST['email']) && isset($_POST['telefon']))
{
    if (empty($_POST['navn']))
    {
        echo "Du skal indtaste dit navn";
    }
    elseif (empty($_POST['adresse']))
    {
        echo "Du skal indtaste din adresse";
    }
    elseif (empty($_POST['email']))
    {
        echo "Du skal indtaste din emailadresse";
    }
    else
    {
        $modtager = "min@mail.dk";
        $emne = "Bestilling på domæne.dk";
        $besked = "Hej, du har modtaget bestilling på domæne.dk: \n
                            Navn: " . $_POST['navn']. "\n
                            Adresse: " . $_POST['adresse']. "\n
                                          " . $_POST['postnr']. " " . $_POST['by']. "\n \n
                            Email: " . $_POST['email']. "\n
                            Telefon: " . $_POST['telefon'];
        $header = "from:salg@mail.dk";

        mail($modtager, $emne, $besked, $header);
        echo "Bestillingen er nu modtaget!";
    }
}
?>

men det er måske selve formularen der sender videre med forkert charset?
Avatar billede majbom Novice
22. oktober 2008 - 09:40 #1
prøv at definer dit charset:

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

indsættes efter $header = "from...";
Avatar billede w13 Novice
22. oktober 2008 - 10:46 #2
Men den skal vel sættes til UTF-8 og ikke ISO-8859-1 så.
Avatar billede majbom Novice
22. oktober 2008 - 10:49 #3
ja, det kommer jo an på hvilket charset han vil bruge...
Avatar billede olebole Juniormester
22. oktober 2008 - 11:32 #4
<ole>

Udfra overskriften og teksten i spørgsmålet at dømme, ønsker han at bruge utf-8  =)

/mvh
</bole>
Avatar billede [tpl]foxy Nybegynder
22. oktober 2008 - 12:02 #5
Så du vil mene at den skal hedde:

        $header = "from:salg@mail.dk";
        $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";

        mail($modtager, $emne, $besked, $header);
        echo "Bestillingen er nu modtaget!";

Umiddelbart ser det, i den modtagne mail, ud til at de to headers bliver blandet sammen.
Mailen bliver modtaget fra: "@ mail. dkcontent-type" <salg>, text/html, charset=iso-8859-1
Avatar billede arne_v Ekspert
22. oktober 2008 - 12:10 #6
Hvis danske bogstaver ses som 2 bogstaver saa:
- er den sendt som UTF-8
- men opfattes af modtager baseret paa headere som ISO-8859-1
Avatar billede w13 Novice
22. oktober 2008 - 12:23 #7
Du mangler \r\n i den første headerlinje:

        $header = 'from:salg@mail.dk' . "\r\n";;
        $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
Avatar billede [tpl]foxy Nybegynder
11. december 2008 - 09:50 #8
hov - havde helt glemt denne, du må hellere smide et svar så jeg kan give point :-)
Avatar billede majbom Novice
04. november 2010 - 10:49 #9
kan vi lukke hér?
Avatar billede [tpl]foxy Nybegynder
04. november 2010 - 11:44 #10
Yep :-)
Avatar billede w13 Novice
04. november 2010 - 12:51 #11
Skal nogen have point, synes du? :)
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