Avatar billede mo-bo Nybegynder
14. oktober 2004 - 15:39 Der er 25 kommentarer og
3 løsninger

HTML og TEXT mail()

Hey

Hvordan sender jeg en mail både som HTML og TEXT ??

Altså så både HTML og TEXT er i samme mail, så hvis HTML er slået fra så viser den TEXT istedet for ?

/Mobo
Avatar billede boris Mester
14. oktober 2004 - 15:41 #1
Det kan du ikke. Enten eller.
Avatar billede boris Mester
14. oktober 2004 - 15:42 #2
En text mail er i ren tekst og indeholder ikke andet end tegn, mellemrum og linieskift.
En HTML mail indeholder HTML-kode. F.eks. virker linieskift ikke, men skrives som linieskift i HTML.
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 15:50 #3
Jo man kan! Det kaldes Multi-Mime.

Den nemmeste måde er at bruge en færdiglavet klasse til formålet...

http://phpmailer.sourceforge.net

Den er dejlig nem at bruge og understøtter begge formater !
Avatar billede boris Mester
14. oktober 2004 - 16:05 #4
Jeg overgiver mig.
Men det kræver at man har installeret noget brugbart på serveren. Kan PHP klare det på et alm. webhotel?
Avatar billede Slettet bruger
14. oktober 2004 - 16:14 #5
sendmail er nok det de fleste Apache servere benytter sig af, så mon ikke :)
Avatar billede boris Mester
14. oktober 2004 - 16:21 #6
Men lige et nysgerrigt spm mere. Er der ingen problemer med disse multimimere? Jeg tænker på de i forvejen overfølsomme antivirusscannere m.v., har de det fint med dem?

Ja og så lige en ting til, hvis jeg må, selvom det ikke er mit spm, men man bliver jo nysgerrig: Man kan da ikke afsende den slags med Outlook?
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 16:21 #7
Den understøtter smtp, sendmail og mail()... Det kan ikke gå galt. Bruger den selv.

Du skal bare uploade to klassefiler (class.phpmailer.php og class.smtp.php) og require dem på din side. Derefter kan du sende mails sådan her:

require("class.phpmailer.php");

$mail = new phpmailer();
$mail->isMail();
$mail->SetLanguage("en", "./language/");
$mail->isHTML(true);
$mail->From = "mig@minside.dk";
$mail->FromName = "mo-bo";
$mail->Subject = "Email fra mig ";
$mail->Body = "Hej hej, her er en email fra mig";
$mail->AddAttachment("billedeafmig.jpg");
$mail->AddAddress("modtager@hamder.dk");
$mail->Send();

Så enkelt er det :) Smukt, ikke ?
Avatar billede boris Mester
14. oktober 2004 - 16:28 #8
Der er da kun en body???
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 16:32 #9
Der er da kun en body ?!? Hvad mener du ? :S
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 16:41 #10
Inden du kommer med flere interessante kommentarer, så prøv denne side jeg har lavet som demo:

http://www.legende.dk/eksmail.php

;)
Avatar billede boris Mester
14. oktober 2004 - 17:03 #11
Tak, jeg har faktisk fået en mail, tilsyneladende i tekst-format.
Men hvordan laver man den både i "rigtig" HTML og ren tekst på samme tid. Når jeg bruger HTML, er det bl.a. for at kunne lave tabeller og anden formatering, men det kan jeg da ikke, hvis der kun er en body til både tekst og HTML?
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 17:11 #12
Jo, fordi den mailklasse piller html-tags fra og laver således en alternativ tekstversion af html-versionen.
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 17:16 #13
...og den mail du har fået ER i html format, hvis du kan modtage html mails. Du kan jo prøve at læse headers på mailen:

MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/html; charset="iso-8859-1"

Men hvad siger mo-bo til det hele. Kan du få det til at virke ? :) Det er jo dit spørgsmål, selv om man snart skulle tro noget andet.
Avatar billede boris Mester
14. oktober 2004 - 17:25 #14
Jeg har fået den i Hotmail, som er glimrende til at modtage HTML mails fuldstændigt fejlfrit og benyttes af mange. Især når det gælder nyhedsbreve m.v.
Det her er tilsyneladende body, som Hotmail opfatter den, men jeg kan ikke få øje på HTML:
<div>
Hej hej, her er en email fra php, tilfreds ?
<font color="#000000"></div>
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 17:40 #15
Øhh... Er <div> og <font> ikke HTML ??? For at du bedre kan begribe at dette rent faktisk er en html mail, har jeg nu puttet et par tags ind i teksten... Prøv så igen !

http://www.legende.dk/eksmail.php

Det var da ufatteligt !
Avatar billede boris Mester
14. oktober 2004 - 17:59 #16
Jeps, det virker fint. Den viser formateringen i Hotmail.
Glimrende.
(Jeg kunne jo ikke lige vide, om den der div var en del af hotmails kode)
Men det bliver noget juks med tabeller?
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 18:06 #17
Ja, selvfølgelig gør det det :S Prøv så igen...

http://www.legende.dk/eksmail.php

Hvilket tag, vil du så nu, gerne se virke ?...
Avatar billede boris Mester
14. oktober 2004 - 21:59 #18
Tak,tak! Det ligner jo HTML. Hvordan ville det så se ud i text?
Avatar billede kokoko Nybegynder
14. oktober 2004 - 22:12 #19
Du kan også gøre sådan:

$header  = "Return-Path: <".$from.">\n";
$header .= "Message-ID: <".md5($from).uniqid(5)."@ditdomæne.dk>\n";
$header .= "From: DitNavn <".$from.">\n";
$header .= "Reply-To: ".$reply_to."\n";
$header .= "Date: ". date('r'). "\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: Multipart/Alternative; boundary=\"part boundary\"";
$body = "--part boundary\n";
$body .= "Content-Type: text/plain; charset=ISO-8859-1\n";
$body .= "\n".$text."\n";
$body .= "\n--part boundary\n";
$body .= "Content-Type: text/html; charset=ISO-8859-1\n";
$body .= "\n".$html."\n";
$body .= "\n--part boundary--\n";
$subject = "Emne";

mail($to, $subject, $body, $header);
Avatar billede morteeart Nybegynder
14. oktober 2004 - 22:14 #20
altså..

html og text mail er to forskellige ting.

så du laver meget simpelt bare 2 mail() kommandoer, til samme email.
hvor den med html email, har et html header med.

sværere er det ikke
Avatar billede kokoko Nybegynder
14. oktober 2004 - 22:15 #21
morteeart> Der er da ingen grund til at sende to emails?
Avatar billede morteeart Nybegynder
14. oktober 2004 - 22:17 #22
ahh, okay.. misforstod pointen med spørgsmålet.
Avatar billede boris Mester
14. oktober 2004 - 22:19 #23
kokoko> Det ligner noget der giver mening, hvis det virker og antivirus-scannerne vil acceptere det!
Avatar billede boris Mester
14. oktober 2004 - 22:20 #24
Jeg håber, at spørgeren fik noget ud af det også :-)
Avatar billede baitianlong Nybegynder
15. oktober 2004 - 00:11 #25
boris -> Det må man håbe, hvis ikke du har skræmt ham væk. Jeg har aldrig set noget lign. her ! Du starter med at give et forkert svar, og når et korrekt svar og en løsning bliver præsenteret, bliver du ved og ved med ikke at acceptere at det var et brugbart svar, og siger det er tekstmail. Da jeg 14/10-2004 17:16:17 viser dig en header fra en mail, som siger html er du stadig skeptisk. Derefter kommer <b> tags og lign. med, du sender dig selv en mail og kopierer html kode fra mailen ind her og siger "hvor er html" og vil stadig ikke acceptere at en svarer kunne løse problemet... jeg fatter ikke hvad der sker for dig, men hvis du deltog i ethvert spørgsmål på Eksperten måtte de sgu købe en ny server hver dag, for at indeholde den eksplosivt ophobende tekst !!!

(Tag nu ikke dette på en sur måde, men blot som en lille notits om at selv om du betvivler et svars rigtighed, kan det stadig være rigtigt - og at ét stensikkert bevis på rigtigheden er lige så godt som 47)

Jeg regner også med at den nu anden præsenterede løsning, fra kokoko virker, men måske skulle vi checke det tag for tag ;)
Avatar billede mo-bo Nybegynder
18. oktober 2004 - 10:37 #26
øh tak :D
Avatar billede boris Mester
18. oktober 2004 - 11:17 #27
Kære legende.
Nej, jeg tager det ikke på en sur måde. :-)
Jeg er lidt overrumplet over at blive overfuset på den måde, men du har nok haft en dårlig dag.
Du har ret i at jeg gav et forkert svar (kommentar), men jeg gjorde det i god tro, og overgav mig omgående, da du svarede. Jeg beklager meget, at jeg tog fejl, men er det grund til at overfuse hinanden?
Jeg har på intet tidspunkt betvivlet svarets rigtighed, men stillet nogle spørgsmål, fordi jeg var oprigtigt meget interesseret i emnet. Du må mange, mange gange undskylde interessen, og hvis det kan gøre det godt igen, skal jeg gerne oprette et nyt spørgsmål, hvor du kan få point af mig også.
Avatar billede boris Mester
18. oktober 2004 - 11:31 #28
Og så vil jeg også lige sige undskyld til mo-bo for først at komme med et forkert svar og siden være nysgerrig, men det var bare et rigtig godt spørgsmål.
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