Avatar billede walkie84 Nybegynder
23. januar 2008 - 12:41 Der er 8 kommentarer og
1 løsning

Farve i mail()

Hej alle i programmører.

Jeg har en mail funktion som ser således ud:

$to = "";
$subject = "";
$body = "Kære kunde...\n";
mail("$to", "$subject", "$body", "From: email@email.dk");

Er det ikke muligt at få noget af teksten i $body til at være f.eks. rød i den email der bliver sendt?

Jeg har prøvet forskellige muligheder, men det virker ikke..

Venligst,
Morten
Avatar billede pidgeot Nybegynder
23. januar 2008 - 12:46 #1
Du skal have en Content-Type header med så du angiver dit indhold til at være HTML (og så skal indholdet naturligvis også være HTML). Så længe du sender en plain-text mail, har du ingen kontrol over formatering.
Avatar billede walkie84 Nybegynder
23. januar 2008 - 12:49 #2
Kan du hjælpe med hvad den header skal sige?
Avatar billede pidgeot Nybegynder
23. januar 2008 - 12:52 #3
Den skal faktisk sige det samme som hvis den skulle påvirke din PHP-side, altså

Content-Type: text/html;charset=DitTegnsætHer

og den skal jo så med ind i header-parameteren, adskilt af konstanten PHP_EOL (da de fleste Linux-maskiner forventer \n, mens Windows vil have \r\n), så det bliver

"From: email@email.dk" . PHP_EOL . "Content-Type: text/html;charset=DitTegnsætHer"

Normalt skal du bruge iso-8859-1 eller utf-8 som tegnsæt - det afhænger af hvad du bruger i din tekst.
Avatar billede pidgeot Nybegynder
23. januar 2008 - 12:54 #4
Og husk nu at lave HELE din mailtekst om til et egentligt HTML-dokument når du gør det her - ellers skal du ikke regne med det fungerer efter hensigten
Avatar billede walkie84 Nybegynder
23. januar 2008 - 12:57 #5
Så virker det sq..!

Superb hjælp - 1000 tak til dig :) skriv et svar

Venligst,
Morten
Avatar billede pidgeot Nybegynder
23. januar 2008 - 13:06 #6
Værsgo :)
Avatar billede smitten1 Nybegynder
23. januar 2008 - 14:02 #7
pidgeot, har du noget info om det med linieskiftet? Vi er jo ovre i SMTP nu (som burde være uafhængigt af OS), og der er det officielle lineskift altid \r\n. At alle ikke overholder det, er så noget andet, men at det altid er sådan?
Avatar billede pidgeot Nybegynder
23. januar 2008 - 14:18 #8
Jeg har ikke lige en egentlig reference ved hånden, men det bunder i historiske årsager: Oprindeligt forventede sendmail nemlig \n. Den ville så konvertere til \r\n når det blev afsendt (hvilket gjorde at \r\n blev til \r\n\n).

Af samme grund vil sendmail-wrappere på *nix i dag opføre sig på netop den måde når de bliver kaldt som sendmail (hvilket PHP gør). Du har ret i at man godt kan komme ud for at det ikke er tilfældet, men det er meget sjældent man har med sådan en at gøre. Derfor er den bedste løsning normalt PHP_EOL; med mindre du har med en speciel sendmail-wrapper at gøre, vil scriptet fungere korrekt på både Windows og *nix, uden tilretninger.
Avatar billede pidgeot Nybegynder
23. januar 2008 - 14:22 #9
Det vil i øvrigt være ret synligt hvis sendmail'en IKKE opfører sig sådan, i hvilket tilfælde man jo blot kan skifte til \r\n - jeg har bare oplevet at der er flere *nix'es der forventer \n end \r\n.
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