Avatar billede 44fire44 Nybegynder
10. august 2007 - 02:25 Der er 20 kommentarer og
1 løsning

Underlige tegn i ved mail fra mail()-funktion

Hej Gutter/-inder

Jeg sidder og roder med en funktion når man får en bekræftense når man har oprettet en bruger

men den laver mine ÆØÅ/æøå om til underlige tegn (å = Ã¥)

Hvordan undgår jeg dette?

Min mailfunktion er bare simpelt:

    $emne = "Tilmelding til noget";
    $body = "\n\nHej $navn.\n";
    $body .= "Vi bekræfter herved for en god ordens skyld\n\n";
    $body .= "Du vil blive kontaktet så snart der er nye oplysninger\n\n";
    $body .= "Vi takker dig\n\n";
    $body .= "De venligste hilsner\n";

    mail($email,$emne,$body,"Reply-to: mail");
    echo '<meta http-equiv="refresh" content="0;url=tak.html">';
}

og det ændrer jo ingenting at skrive &#229; eller &aring; i teksten...

What do i do now?

Thx
Avatar billede 44fire44 Nybegynder
10. august 2007 - 02:41 #1
Fx, "Hop når du er glad" skrevet i en mail, vil se sådan ud i en mailklient: "Hop nÃ¥r du er glad"
Avatar billede jakobdo Ekspert
10. august 2007 - 07:48 #2
Hvad hvis du skriver:

<?php
mail('modtager@email.dk','Test','Hop når du er glad',"Reply-to: mail");
?>

Ser teksten så også mærkelig ud?
Avatar billede 44fire44 Nybegynder
10. august 2007 - 10:49 #3
Ja, teksten er stadig mærkelig :)
Avatar billede 44fire44 Nybegynder
10. august 2007 - 11:11 #4
Altså det er jo stensikkert noget med tegnsættet, men hvordan løser jeg problemet? :/
Avatar billede jakobdo Ekspert
10. august 2007 - 11:13 #5
Har du angivet et tegnsæt i toppen af din kode?
Avatar billede 44fire44 Nybegynder
10. august 2007 - 11:50 #6
ikke før mail() funktionen da den kommer før HTML-starter

skal jeg smide mail()-funktionen længere ned?
Avatar billede 44fire44 Nybegynder
10. august 2007 - 12:00 #7
Nu smed jeg så hele min funktion længere ned i scriptet, efter tegnsættet var skrevet

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Avatar billede 44fire44 Nybegynder
10. august 2007 - 12:03 #8
- og det virker stadig ikke...
Avatar billede jakobdo Ekspert
10. august 2007 - 19:16 #9
Følgende kode:

<?php
//http://www.eksperten.dk/spm/791045

$to      = 'din@email.dk';
$subject = 'Test af mærkelige tegn i en email';
$message = 'Hop når du er glad';
$headers = 'From: webmaster@codebreaker.dk' . "\n" .
                    'Reply-To: webmaster@codebreaker.dk' . "\n" .
                    'X-Mailer: PHP/' . phpversion();




if(mail($to, $subject, $message, $headers))
{
    echo 'Email er afsendt';
}
else
{
    echo 'Email er ikke afsendt';
}
?>

Giver mig en email i min indbakke på gmail, som siger:

Emne: Test af mærkelige tegn i en email
Indhold: Hop når du er glad

Så der er altså ingen problemer med koden og min server/udbyder.
Avatar billede 44fire44 Nybegynder
10. august 2007 - 19:36 #10
Okay, jeg har også selv prøvet at sende mailen til mig til min Gmail account, og det virker også uden problemet

men altså ikke i Outlook - hvordan får jeg den til at vise korrekte tegn i outlook?
Avatar billede jakobdo Ekspert
10. august 2007 - 20:13 #11
Kender du phpmailer ?
Du kunne prøve at bygge emailen op over den i stedet.
Avatar billede 44fire44 Nybegynder
10. august 2007 - 20:20 #12
Jeg har desværre ikke rettigheder til at ændre noget som helst på den pågældende server, da det er et webhotel hos Enavn.dk :(
Avatar billede jakobdo Ekspert
10. august 2007 - 20:30 #13
phpmailer er en php klasse : http://phpmailer.sourceforge.net/
Avatar billede 44fire44 Nybegynder
10. august 2007 - 21:30 #14
Fra README:

"Installation:

Copy class.phpmailer.php into your php.ini include_path. If you are
using the SMTP mailer then place class.smtp.php in your path as well."

Så vidt jeg ved har jeg ikke noget include_path tilknyttet mit webhotel
Avatar billede jakobdo Ekspert
10. august 2007 - 21:47 #15
Kom nu ind i kampen! :o)

Du kopiere filen: class.phpmailer.php ind i f.eks. mappen: test
I mappen test laver du så også filen: test.php

Den skal så indeholde:

<?php
require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->From    = "afsender@email.dk";
$mail->FromName = "Afender Navn";
$mail->AddAddress("modtager@email.dk, "Modtager Navn");

// HTML body
$body  = "<p>Hop når du er glad!</p>";
$body .= "Eksperten Test";

// Plain text body (for mail clients that cannot read HTML)
$text_body  = "Hop når du er glad!\n\n";
$text_body .= "Eksperten Test";

$mail->Body    = $body;
$mail->AltBody = $text_body;

if(!$mail->Send())
    echo "Der opstod en fejl under afsendelse af emailen<br>";

?>
Avatar billede 44fire44 Nybegynder
11. august 2007 - 12:23 #16
Jeps ;) - det virker efter hensigten nu (efter at have erstattet ÆØÅ med &#220; osv :)

Tusinde tak for hjælpen - Smid et svar og få dine velfortjente points ;)
Avatar billede 44fire44 Nybegynder
11. august 2007 - 12:24 #17
(well - nu fatter jeg den der med include_pathen :) - kunne overveje at jeg skulle prøve mig frem istedet for at brokke mig næste gang :P)
Avatar billede jakobdo Ekspert
11. august 2007 - 12:53 #18
Det er nemmere at brokke sig. :o)
Men man kommer altså langt ved lige at teste lidt selv, det er så rar fornemmelse når man selv knækker en nød.

Og du får et svar.
Avatar billede jakobdo Ekspert
12. august 2007 - 11:48 #19
Takker for point.
Avatar billede 44fire44 Nybegynder
12. august 2007 - 12:36 #20
Selv tak - Karma er også givet ;)
Avatar billede jakobdo Ekspert
12. august 2007 - 13:00 #21
Takker! :oD
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