Avatar billede bjarnesoroe Nybegynder
26. maj 2014 - 16:47 Der er 11 kommentarer og
1 løsning

PHP mail - problem med nationale bogstaver - f.eks. æøå - i tekster (body)

Jeg har brug for et godt råd.
Når jeg i en mail sender tekst fra databasen (utf8_general_ci), bliver æøå og andre nationale bogstaver vist som en kode - f.eks. "For beløbet:" vises "ø" forkert.

Kodninger ser således ud:

$navn = $param[0]->navn;
$firma     = $param[0]->firma;
$emne = $tekst110;
$hej = $tekst124.' '.$navn.', '.$firma;
$tempkode = $tekst121;
$hilsen = $tekst132;

$body = $hej."\r\n\r\n".
  $tempkode."\r\n\r\n".
  $hilsen."\r\n".
  $tekst134;

mail($mailadresse, $emne, $body);

Hvad skal jeg ændre, for at det virker?
Avatar billede bjarnesoroe Nybegynder
27. maj 2014 - 09:15 #2
I linket til stackoverflow vises en opbygning af $headers som 4. parameter i mail() kaldet.
Jeg har lidt svært ved at overskue, hvordan $headers skal sammensættes til mit formål.
$headers = "From: $fromPerson\r\n" .
"Content-Transfer-Encoding: 8bit\r\n".
"Reply-To: $fromPerson\r\n" .
"Content-Type: multipart/alternative; boundary=". $mime_boundary_header. "\r\n" .
"X-Mailer: PHP/" . phpversion();

Alle tekster i min database er med tegnsæt utf8.
27. maj 2014 - 13:23 #3
Her er hvad du har behov for:

<?php
$navn    = $param[0]->navn;
$firma    = $param[0]->firma;
$emne    = $tekst110;
$hej      = $tekst124.' '.$navn.', '.$firma;
$tempkode = $tekst121;
$hilsen  = $tekst132;
$body    = $hej."\r\n\r\n".
              $tempkode."\r\n\r\n".
              $hilsen."\r\n".
              $tekst134;


$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: example@example.com\r\n";
$headers .= "Reply-To: example@example.com\r\n";

mail($mailadresse, $emne, $body, $header);
?>

Det er nemmere at kopiere koden her fra http://pastebin.com/PcbLQ78t
Avatar billede bjarnesoroe Nybegynder
27. maj 2014 - 15:20 #4
Tusind tak, nu er æøå på plads. Men nu virker linieskift ikke, heller ikke med single quote i stedet for double quote. Hvordan kan det være?
27. maj 2014 - 20:49 #5
Avatar billede bjarnesoroe Nybegynder
27. maj 2014 - 21:21 #6
Det ser ud som om de escape characters, der er vist i linket, er de samme, som jeg bruger. Men det kan være, jeg har misforstået noget.
27. maj 2014 - 21:39 #7
Trækker du teksten ud af en database?
Avatar billede bjarnesoroe Nybegynder
28. maj 2014 - 11:42 #8
Både fra databasen og fra et input felt
Avatar billede bjarnesoroe Nybegynder
05. juni 2014 - 09:05 #9
Koden ser nu således ud:

$body = $hej.'\r\n\r\n'.
            $tekst133.'\r\n\r\n'.
            $tekst132.'\r\n'.
            $tekst134.'\r\n\r\n'.
            $virksomhed_navn.'\r\n'.
            $virksomhed_mailadresse.'\r\n'.
            $virksomhed_meddelelse;
   
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=UTF-8\r\n";
   
    mail($mailadresse, $emne, $body, $headers);

$body ser således ud i mailen, når den modtages:

Hej Bjarne Hansen\r\n\r\nDenne virksomhed vil gerne i kontakt med dig\r\n\r\nVenlig hilsen\r\nTeam Alphajob.org\r\n\r\nBjarne Hansen øæåØÆÅ\r\nbjh@alphajob.org\r\nKom og besøg os på søndag

Som det ses, så er æøå på plads, men linieskift bliver ignoreret.
Hvad gør jeg forkert?
Avatar billede bjarnesoroe Nybegynder
10. juni 2014 - 08:39 #10
Det viser sig, at <br> løser problemet.
Således:
$body = $hej.<br><br>.
            $tekst133.'<br><br>'.
            $tekst132.'<br>'.
            $tekst134.'<br><br>'.
            $virksomhed_navn.'<br>'.
            $virksomhed_mailadresse.'<br>'.
            $virksomhed_meddelelse;

Bjarne Hansen
Avatar billede bjarnesoroe Nybegynder
25. juni 2014 - 08:48 #11
Indlægget den 10. juni viser løsningen
Avatar billede bjarnesoroe Nybegynder
10. juli 2014 - 08:02 #12
Indlægget den 10. juni viser løsningen
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