Avatar billede hanloven Mester
11. marts 2013 - 10:44 Der er 9 kommentarer og
1 løsning

Dansk tegnsæt i mail fra form.

Jeg har lavet nogle forms, som udfyldes via en hjemmeside. De submittes til en php, som sender dem til en angivet mail.

Det fungerer fint, bortset fra at ÆØÅ ikke vises korrekt i mailen jeg modtager. Jeg har prøvet lidt forskelligt, men kan ikke helt få hul igennem.

Håber en lige har de vise sten :-)
Avatar billede zynix Nybegynder
11. marts 2013 - 11:20 #1
Prøv og sæt charset til ISO-8859-1 på din side.
Avatar billede olebole Juniormester
11. marts 2013 - 11:36 #2
<ole>

At skifte til iso-8859-1 skaber sikkert andre problemer, når det sker i en virkleighed, hvor Unicode er defacto standard  =)

Det kræver lidt mere at sende mails som utf-8. Prøv denne kode:

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:
mail_utf8('modtager@gmail.com', 'Besked til dig', 'Indhold af mail', 'fra@domain.dk', 'html');

/mvh
</bole>
Avatar billede hanloven Mester
11. marts 2013 - 12:13 #3
Tak for info. Det er stadig ustabilt. Nogle gange kommer de fleste ÆØÅ igennem ok. Andre gange er der nogle af dem der står forkert. Der er et eller andet lusket med min kode. Jeg vender lige tilbage senere.
Avatar billede olebole Juniormester
11. marts 2013 - 12:20 #4
1) Alle filer skal være gemt som utf-8. Ikke kun mail-filen

2) Brug en utf-8 meta i alle filer

3) Sørg for evt. database er sat til utf-8 og tabelkollationer til utf8_danish_ci

4) Tjek, at serveren faktisk server dokumenterne som utf-8

add. 3) Hvis du ændrer instillingerne i punkt 3, har det ikke indvirkning på allerede bestående data. Det vil kun virke på nyindsatte data
Avatar billede scootergrisen Nybegynder
11. marts 2013 - 12:28 #5
Se her : http://netkoder.dk/netkoder/kode_email.php

Sæt encoding til det samme hele vejen igennem.

Find ud af hvad encoding du vil bruge. UTF-8 for eksempel.
Også sæt den samme encoding i din HTML meta tag og i din header til mail() funktionen.

<meta charset="UTF-8">

$headers .= "Content-type: text/plain; charset=utf-8\r\n";
mail($tilemail, $emne, $besked, $headers);


Ellers kom med din kode.
Avatar billede olebole Juniormester
11. marts 2013 - 12:38 #6
@scootergrisen: Det er en alt for 'skrabet' mail-kode. Den vil kun virke i sjældne tilfælde - hvis i nogen, overhovedet.

Den kode, jeg har skrevet i #2, er en ret skudsikker metode, som utallige gange har bevist sit værd, når folk ikke har kunnet få andet til at virke
Avatar billede hanloven Mester
14. marts 2013 - 23:41 #7
Tusind tak for jeres inputs. Jeg har lidt meget om ørene i disse dage, men jeg er ret sikker på at din løsning, olebole, må fungere.
- Jeg håber jeg lige får tid til at teste inden længe. - Så vender jeg tilbage og lukker spørgsmålet.
Avatar billede hanloven Mester
26. marts 2013 - 07:58 #8
Det ser ud til at fungere rigtig fint, OleBole, vil du lægge et svar ? - Så får du point.
Avatar billede olebole Juniormester
26. marts 2013 - 16:01 #9
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede hanloven Mester
13. april 2013 - 09:59 #10
Okay. Bare iorden.
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