HTML mail

Tags:    php

jeg er igang med at lave en newsmail-sender og til den skal jeg bruge sådan at den sender mailen i HTML, og hvis ens email-klient ikke kan håndtere den skal den i stedet skrive en tekst.

jeg har 2 problemer, det ene er det med at sende den som HTML og det andet er at få den til at skrive en linje hvis modtageren ikke kan modtage HTML mails.

Med venlig hilsen
Morten Lybecker



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Hmm... Jeg kan desværre ikke hjælpe dig med alle dine problemer, men jeg kan vel lette lidt på det ved at løse det ene af dem:

mail("mail@mail.dk", "Emne", "Besked, "From: mail@mail.dk\\nReply-To: mail@mail.dk\\nContent-Type: Text/html");

Altså, det er den 3. header, content-type, der angiver indholdets type, som jeg har sat til Text/html.

Jeg ved så ikke hvordan man tjekker om ens modtager kan modtage HTML mails.



Der er en fin artikel her:
http://www.sitepoint.com/print/advanced-email-php

Jeg brugte den til at lave min egen mail-klasse i PHP der kan sende almindelige mails, html-mails og have vedhæftninger.

Det du skal gøre er at kigge lidt på de der multipart mails. Det man egengligt gør er at dele indholdet af sin mail op i flere dele. Her kan der være en HTML-del som bliver vist hos alle der understøtter HTML-mails, der kan være en plain-text del som bliver vist hos folk hvor HTML ikke understøttes, og der kan være vedhæftede filer.

Det du gør er at tilføje følgende til mail-headeren:
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="==Multipart_Boundary_xc75j85x"

Her angiver du at det er en multpart besked og at de forskellige dele adskilles af strengen "==Multipart_Boundary_xc75j85x"

Der er så indholdet af beskeden som starter med:
This is a multi-part message in MIME format.

Herefter kan du så lave de forskellige ting du vil have i din mail.

--==Multipart_Boundary_xc75j85x

angiver nu at du starter på en ny sektion. Du angiver herefter på næste linje headerne:

Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

det er plain text, kunne også være:

Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

som er HTML. Herefter skal der være 2 linjeskift og så kan indholdet af sektionen, altså din HTML-besked eller almindelige plain-text besked komme.

Du afslutter med samme streng, blot med 2 streger bagpå:

--==Multipart_Boundary_xc75j85x--

Du kan på denne måder med din boundary-streng lave flere sektioner med indhold eller vedhæftninger i din mail. Men det står alt sammen lidt bedre beskrevet i guiden :-)



Tak skal du havde, men kan jeg ikke få dig til at lave et sammenhængene eksempel? så jeg bedre kan overskue det. Gerne bare med:
Fold kodeboks ind/udKode 

På forhånd tak



Indlæg senest redigeret d. 18.07.2006 18:33 af Bruger #7056
Tak skal du havde, men kan jeg ikke få dig til at lave et sammenhængene eksempel? så jeg bedre kan overskue det. Gerne bare med:
Fold kodeboks ind/udKode 

På forhånd tak


Det ser sådan her ud.

Fold kodeboks ind/udKode 




Hjalp det, eller er der stadig noget du er i tvivl om?



t