php mail() function - mailen ser en smule forkert ud?

Tags:    php

Hejsa,

jeg har nu bakset med et problem et stykke tid, uden at jeg kan finde en løsning selv.

Jeg har en side, der sender en pænt lang mail afsted (html). Når jeg åbner mailen i Outlook er der små fejl i den, som en enkelt celles baggrundsfarve er væk, lidt formattering er smuttet hist og pist, og en celles indhold er forskubbet (helt ud af tabellen).

Jeg har prøvet med lidt forskelligt fra diverse sites, men i og med jeg ikke kender til kodning i dybden kommer jeg ikke rigtig videre.

Når jeg åbner mailen og vælger 'vis kilde' står den dog som ansi kodet - jeg har en fornemmelse af, at det er kilden til min frustration, men aner ikke, hvordan jeg skal gøre noget ved det.

Nå, tid til koden:

simpel version:
Fold kodeboks ind/udKode 


kompliceret version:
Fold kodeboks ind/udKode 


HVIS en af jer gerne vil se selve mailen kan jeg snildt benytte siden og sende én - der er ikke nogen følsom eller hemelig information i dén :)

Jeg håber, at I kan hjælpe! Sidst jeg spurgte gik det fremragende! (igen sidekoding - første skridt på vejen til dybere forståelse ;) )

Tak!!

- Jannik



Når du trykker på "vis kilde" på din mail, og gennemkigger den del af html'en, hvor outlook viser det forkert - kan du så se, om html'en er anderledes end den du har skrevet da du sendte den afsted?

Hvis den ikke er anderledes, er det ikke PHP's fejl, men din htmls/outlooks html-rendering. Løsningen på dette er i såfald at læse op på mailklient optimering af html-mails, da der er mange snørklede, uforståelige og irriterende regler og undtagelser der træder i kraft, når man skal lave htmlmails. Det er ingenlunde ligeså enkelt som at lave html til en browser.



Indlæg senest redigeret d. 03.10.2008 00:05 af Bruger #8223
Den er den faktisk ikke. Den renderer åbentbart html'en forkert?

Er der nogen gode ressourcer på Do's and Don'ts?

Fx. bør man holde sig til html4.0 standard eller xhtml transitional? eller ... ?

Manner jeg føler mig uvidende lige nu ...

Fx. Jeg bruger Style attributten - er det evt. en del af problemet?

Tak for din indsats, og ja, jeg synes godt nok også, at det er en speget omgang :)



HAH! Jeg fandt ud af det! Og nu er der garanteret nogen, der griner røven i laser....

$body var én, lang streng. Meget lang streng, da der er en del tabeller i mailen. Hvilket browsere afaik ikke har nogen som helst problemer med, men åbenbart har Outlook et probem. Jeg prøvede at sætte "\n" ind efter hver "</tr>" for dermed at bryde strengen op i mindre bidder (hvad angår outlooks syn på sagen i det mindste) og det virkede!

1: jeg er glad nu!
2: Outlook sutter røv....

God weekend, og tak for indsatsen!



Well, et par tommelfingerregler når det gælder at være kompatibel med så mange mailklienter som muligt:

1: så få style tags som muligt. Globale/eksterne stylesheets er naturligvis også helt udelukket
2: hold dig til en så tidlig udgave af HTML som muligt. HTML 3.2 eller 4.0
3: tabeller er den eneste nogenlunde sikre måde at stille layout op på, i en html-mail. Ganske som du har gjort det. CSS-stylede divs duer simpelthen ikke i dette tilfælde.
4: hvis du deler layoutet op i flere tabeller (fx en tabel for toppen, en tabel for indholdet og en tabel for bunden, hvis du følger den model), vil mailen rendere hurtigere.
5: hvis du giver img-tags en fast width="" og height="" renderer de hurtigere. Hold dig iøvrigt fra PNG, da mange mailklienter renderer dem forkert og meget langsomt.
6: generelt kan man sige, at de fleste regler og standarder for god kodeskik, er ubrugelige når det kommer til html-mails.



t