<?php
declare(encoding = 'ISO-8895-1');
mail($toAddy, $subject, $message, "From: $navn\nReply-To:
$from\nX-Mailer: PHP/" . phpversion());
?>
Det mottar variablene fra et flashdokument og det virker som det funker
fint når jeg sender mailer til gmail - men hører ord fra andre om at
de får kråketær når de mottar mailer med ÆØÅ fra skjemaet.
Hva gjør jeg galt?
* MIME krever CR LF som ny linje, ikke LF. Du får problemer med noen få
leverandører dersom du ikke passer på dette.
* Bruk UTF-8, ikke ISO-*. utf8_encode() eller iconv() kan benyttes da php
foreløpig ikke støtter utf-8 .php-filer.
* Du har ikke eksplisitt spesifisert charset i headeren. Du bør sjekke om
denne blir riktig. Det er kanskje derfor mailen ser rar ut hos mottaker.
* Unyttig og potensielt skadelig informasjon i X-mailer. Sett heller
IP-adresse og/eller bruker id'n til webbrukeren i feltet dersom dette gir
mening.
* Manglende feilhåndtering av mail().
Sjekk også at du håndterer injeksjon av farlig kode i variablene dine da det
er uvisst i eksempelet ditt.
j
<chri...@gmail.com> wrote in message
news:1165930632.8...@73g2000cwn.googlegroups.com...
> * Bruk UTF-8, ikke ISO-*. utf8_encode() eller iconv() kan benyttes da php
> foreløpig ikke støtter utf-8 .php-filer.
Hva mener du med at php ikke støtter utf-8 .php-filer? Hos meg ser det
ut til å fungere helt fint.
Tegnkodingen må angis som header i mail-funksjonen, hvis ikke bruker
e-postleseren standard tegnkoding. Dette er iso-8859-1, men noen av de
største utviklerne har en tendens til å ville definere sine egne
standarder.
Hvis variablene fra flashdokumentet er iso-8859-1, noe det ser ut til
å være siden gmail viser meldingen riktig, burde denne koden fungere:
<?php
$headers = 'MIME-Version: 1.0' . "\r\n" .
'Content-type: text/html; charset=iso-8859-1' . "\r\n" .
"From: $navn" . "\r\n" .
"Reply-To: $from" . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($toAddy, $subject, $message, $headers );
?>
> Hva mener du med at php ikke støtter utf-8 .php-filer? Hos meg ser det
> ut til å fungere helt fint.
Jeg fikk parserfeil når jeg prøvde å aksessere utf8 php filer ifra web før.
En sjekk på google da sa at php ikke støttet det. Dette begynner å bli en
real stund siden. Det ser ut til at det virker nå. Det er jo bra. Takk for
oppdateringen.