Avatar billede hobbittend Novice
10. april 2014 - 12:34 Der er 9 kommentarer og
1 løsning

æ ø og å i mail()

Jeg ved der er masser af spørgsmål rundt omkring der omhandler dette, men jeg kan simpelthen ikke få mit script til at virke.

Når jeg sender en mail fra scriptet, skriver den æøå i stedet for æ ø og å, og jeg har heller ikke haft held med at skifte linje med hverken "/n" eller "<br>".

Kan i hjælpe?

Min struktur er at jeg har hele layoutet i en fil, og inkluderer den fil i mine sider. Layoutfilen starter med:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="css/Style.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>





Min form ser således ud:

<form action="Kontakt_Form_Response.php" method="post" enctype="multipart/form-data" name="form1" id="form1"charset="utf-8">
<table width="100%" border="0" cellspacing="10" cellpadding="0">
  <tr>
    <td width="29%"><strong>Navn:</strong></td>
    <td width="71%"><input name="Navn" type="text" id="Navn" tabindex="1" size="35" /></td>
  </tr>
  <tr>
    <td><strong>Firma:</strong></td>
    <td><input name="Firma" type="text" id="Firma" tabindex="2" size="35" /></td>
  </tr>
  <tr>
    <td><strong>
      <label for="Mail">E-mail:</label>
    </strong></td>
    <td><input name="Mail" type="text" id="Mail" tabindex="3" size="35" /></td>
  </tr>
  <tr>
    <td><strong>
      <label for="Telefon">Telefon:</label>
    </strong></td>
    <td><input name="Telefon" type="text" id="Telefon" tabindex="4" size="35" /></td>
  </tr>
  <tr>
    <td valign="top"><strong>Hvordan fandt du os?</strong></td>
    <td>
      <p>
        <label>
          <input type="radio" name="RadioGroup" value="Google" id="RadioGroup_0" />
          Googlesøgning (eller andre)</label>
        <br />
        <label>
          <input type="radio" name="RadioGroup" value="Annonce på nettet" id="RadioGroup_1" />
          Annonce på nettet</label>
        <br />
        <label>
          <input type="radio" name="RadioGroup" value="Hørte om jer fra en bekendt" id="RadioGroup_2" />
          Hørte om jer fra en bekendt</label>
        <br />
        <label>
          <input type="radio" name="RadioGroup" value="Flyer" id="RadioGroup_3" />
          Modtog jeres flyer</label>
        <br />
        <label>
          <input type="radio" name="RadioGroup" value="Har samarbejdet med jer før" id="RadioGroup_4" />
          Har samarbejdet med jer før</label>
        <br />
        <label>
          <input type="radio" name="RadioGroup" value="Andet" id="RadioGroup_5" />
          Andet</label>
        <br />
      </p>
    </td>
  </tr>
  <tr>
    <td><strong>
      <label for="Telefon">Emne:</label></strong></td>
    <td><input name="Emne" type="text" id="Emne" tabindex="5" size="35" /></td>
  </tr>
  <tr>
    <td valign="top"><strong>Besked:</strong></td>
    <td><textarea name="Besked" cols="70" rows="15" id="Besked" tabindex="6"></textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="Send" id="Send" value="Send" tabindex="7" /></td>
  </tr>
</table>
</form>







Og min form response:

$Navn =  $_POST['Navn'];
$Firma =  $_POST['Firma'];
$Mail =  $_POST['Mail'];
$Telefon =  $_POST['Telefon'];
$Emne = $_POST['Emne'];
$Besked = $_POST['Besked'];
$Kilde =  $_POST['RadioGroup'];

$SendtBesked = "Afsender: " . $Navn . " /n Firma: " . $Firma . "<br><br>Telefon: " . $Telefon . "<br><br> Fandt os via: " . $Kilde . "<br><br>" . $Besked;

mail('mail@domain.dk', $Emne, $SendtBesked, $Mail);





Hvordan får jeg æ ø og å til at se normale ud, og hvordan skifter jeg linje i $SendtBesked ?

På forhånd tak
Avatar billede Slettet bruger
10. april 2014 - 12:39 #1
For at bruge HTML skal du bruge en HTML opsætning af emailen:
Med plain text, som du bruger der, skal du bruge \n ikke /n til at bede om linieskift.

Omkring UTF8, mailen får ikke besked om det korrekte charset.
Dette kan specificeres ved at lave om på måden mailen dannes på.

Finder et eksempel om lidt.
Avatar billede Slettet bruger
10. april 2014 - 12:51 #2
http://www.webhostingtalk.com/showthread.php?t=416467

Den der lader til at være okay at bruge, for en på dit niveau.
Bare ret til, hvor det giver mening. Blandt andet i charset.
Avatar billede hobbittend Novice
10. april 2014 - 13:32 #3
Tak for svar.

Jeg kan nu skifte linje med <br>, men æ ø og å er stadig meget underligt...

Har følgende kode:

$Headers  =  "From: $Mail\r\n";
    $Headers .= "Content-type: text/html; charset=utf-8rn";
   
mail('mail@domain.dk', $Emne, $SendtBesked, $Headers);
Avatar billede Slettet bruger
10. april 2014 - 13:36 #4
Content-Type: text/html; charset=\"utf-8\"
Avatar billede hobbittend Novice
10. april 2014 - 13:43 #5
Det gør umiddelbart ikke noget forskel...
Avatar billede Slettet bruger
10. april 2014 - 13:52 #6
Kan se, at jeg sætter Content-type på min body og ikke i min header.
Ved ikke om det gør nogen forskel.

Kan desværre ikke give dig min løsning, da den er skrevet i OOP, altså som en klasse. Og hvis du ikke ved hvordan du bruger dette, kan det være ligegyldigt at have koden.
Avatar billede olsensweb.dk Ekspert
12. april 2014 - 07:54 #7
du skal prøve at kigge på base64_encode

derefter kan du kigge på følgende 2 løsning muligheder der anvender base64_encode

løsning 1 af olebole http://www.eksperten.dk/spm/961816 #3
denne løsning bruger jeg selv


løsning 2 http://php.net/mail
kig under kommentare indlæg
pavel.lint at vk.com 16-May-2012 11:22
Max AT 15-Feb-2012 09:26


i bække tilfælde laves der en ny function  der hedder mail_utf8
Avatar billede hobbittend Novice
21. april 2014 - 17:03 #8
Tak for hjælpen! :)
Det har givet mig en værre hovedpine.

Smid et svar for point :)



Den endelige løsning blev:
function mail_utf8($to, $Navn, $Email,
                                            $Emne = '(No subject)', $SendtBesked = '')
  {
      $Navn = "=?UTF-8?B?".base64_encode($Navn)."?=";
      $Emne = "=?UTF-8?B?".base64_encode($Emne)."?=";

      $headers = "From: $Navn <$Email>\r\n".
              "MIME-Version: 1.0" . "\r\n" .
              "Content-type: text/html; charset=UTF-8" . "\r\n";

    return mail($to, $Emne, $SendtBesked, $headers);
  }
  mail_utf8($to, $Navn, $Email, $Emne, $SendtBesked);
Avatar billede olsensweb.dk Ekspert
21. april 2014 - 17:43 #9
jeg samler ikke på point mere, læg selv et svar, og accepter så tråden lukkes
Avatar billede hobbittend Novice
21. april 2014 - 20:57 #10
Tusind tak for hjælpen hele vejen rundt :)
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