Avatar billede mrfunder Nybegynder
27. december 2008 - 21:19 Der er 9 kommentarer og
1 løsning

Hjælp til PHP mail

Kære Eksperter.

Jeg prøver at benytte PHP's indbyggede mail funktion via mail.tele.dk - heraf har jeg et par fejl jeg ikke kan forstå:

1. Mailen bliver serveret som ren tekst, dvs. der bliver printet <html><body> tags.

2. "til" fremtræder som text/html@mailgw1.surf-town.net; "charset=UTF-8rnX-Mailer:PHP"@mailgw1.surf-town.net; v5.2.6rn@mailgw1.surf-town.net - selvom mailen dog bliver leveret..

- det skal lige nævnes at modtager adressen er en surftown email


<?php

$v_email = "minadresse@domain.dk";
$message = "
<html>
<head>

<body>
  <p>Du har modtaget en invitation</p>
</body>
</html>";


$headers .= "To: ".$v_email."\\r\\n";
$headers .= "From: afsenderadresse@domain.dk\\r\\n";
$headers .= "MIME-Version: 1.0\\r\\n";
$headers .= "Content-type: text/html; charset=UTF-8\\r\\n";
$headers .= "Message-ID: <".time()."-noreply@localhost>\\r\\n".
$headers .= "X-Mailer: PHP v".phpversion()."\\r\\n";
$subject = "Du har modtaget en invitation";
           
if(mail($v_email, $subject, $message, $headers)) {
  print("Mail sendt!");
}
else {
  print("An error occured attempting to send a mail to <b>".$v_email."</b>");
}

?>
Avatar billede coderdk Praktikant
27. december 2008 - 22:04 #1
\\r\\n skal være \r\n - "To:" skal ikke være i headers (den bliver automatisk sat ind fordi du har den i "to" i funktionen)
Avatar billede mrfunder Nybegynder
27. december 2008 - 22:45 #2
tusind tak :)

smider du et svar?
Avatar billede coderdk Praktikant
27. december 2008 - 22:48 #3
ok :D
Avatar billede mrfunder Nybegynder
27. december 2008 - 23:55 #4
og endnu engang tak .-)
Avatar billede majbom Novice
28. december 2008 - 19:25 #5
i stedet for \r\n kan du bruge konstanten PHP_EOL, så er du sikker på at det virker på alle platforme...
Avatar billede arne_v Ekspert
28. december 2008 - 19:30 #6
Næppe. Tekst filer bruger \n på *nix og \r\n på win, *men* SMTP protokollen bruger
\r\n uanset platform.
Avatar billede erikjacobsen Ekspert
28. december 2008 - 19:30 #7
PHP_EOL kan ikke anvendes. Standarden for SMTP foreskriver <CRLF>, dvs. "\r\n", selv om man af og til ser af <LF>, "\n", også virker.
Avatar billede erikjacobsen Ekspert
28. december 2008 - 19:32 #8
Avatar billede majbom Novice
28. december 2008 - 19:41 #9
okay, så blev jeg da osse det klogere :)

så det er ALTID \r\n uanset platform?
Avatar billede erikjacobsen Ekspert
28. december 2008 - 19:44 #10
Til SMTP - her headers i mail - ja, altid. Det står i linket fra før, og sådan set vist også på http://php.net/manual/en/function.mail.php
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