Avatar billede googolplex Novice
18. januar 2004 - 17:33 Der er 6 kommentarer og
3 løsninger

Sende html-mail med mail()

Jeg har følgende:

<?php

$to = '';
$from = '';
$subject = 'HTML email';
$message = '<html><body bgcolor="#ffffff"><p align="center"><b>Hello World!</b></p></body></html>';
$headers  = "From: $from\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($to, $subject, $message, $headers);

?>

Men når jeg modtager mailen, så står der følgende øverst:

Message-Id: <20040118163018.453EA11BA62@ws2.surf-town.net> Date: Sun, 18 Jan 2004 17:30:18 +0100 (CET)

Derefter kommer beskeden, der ser fin ud.

Jeg kan sagtens sende html-mails med smtp-klasser osv, det funker bare ikke med mail()...jeg får hele tiden den tekst øverst :(
Avatar billede fangel Nybegynder
18. januar 2004 - 17:38 #1
se hvad de gør på

http://php.net/manual/en/function.mail.php

tror du mangler MIME headeren (se siden for hvordan den skal se ud)

Morten
Avatar billede googolplex Novice
18. januar 2004 - 21:29 #2
Det har jeg prøvet, det virker ikke :(

Jeg har haft spørgsmålet oppe et par gange, men ingen har kunne vise mig hvordan man sender en html-mail med mail() - måske det slet ikke kan lade sig gøre :P
Avatar billede pgm Nybegynder
18. januar 2004 - 23:11 #3
Denne virker for mig på alle servere jeg har testet på indtil videre (min egen, lokal server, b-one og freepaq)

http://www.zend.com/manual/function.mail.php

<?php
/* recipients */
$to  = "mary@example.com" . ", " ; // note the comma
$to .= "kelly@example.com";

/* subject */
$subject = "Birthday Reminders for August";

/* message */
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
  <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
  <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
  <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

/* To send HTML mail, you can set the Content-type header. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* additional headers */
$headers .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>\r\n";
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* and now mail it */
mail($to, $subject, $message, $headers);
?>
Avatar billede googolplex Novice
20. januar 2004 - 15:13 #4
pgm: Havde slet ikke set dit indlæg, kan du ikke lige prøve at sende en mail til jjr AT adslhome DOT dk ? Jeg har nemlig prøvet det, men jeg får samme fejl, vil gerne tjekke om det er undertegnede der ikke kan hitte ud af det eller noget med min Outlook.
Avatar billede pgm Nybegynder
20. januar 2004 - 15:26 #5
dette script *virker*...

<?php

/* recipients */
$to = '';
$from = '';

/* subject */
$subject = 'HTML email';

/* message */
$message = '<html><body bgcolor="#ffffff"><p align="center"><b>Hello World!</b></p></body></html>';

/* To send HTML mail, you can set the Content-type header. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* additional headers */
$headers .= "To: Til dit navn <".$to.">\r\n";
$headers .= "From: Fra mit navn <".$from.">\r\n";

/* and now mail it */
mail($to, $subject, $message, $headers);
?>
Avatar billede googolplex Novice
20. januar 2004 - 19:53 #6
Når jeg modtager mailen står der:

Content-type: text/html; charset=iso-8859-1

To: Til dit navn <minmail@adslhome.dk>
From: Fra mit navn <minmail@adslhome.dk>
Message-Id: <20040120185113.BC78011B815@ws2.surf-town.net>
Date: Tue, 20 Jan 2004 19:51:13 +0100 (CET)


<html><body bgcolor="#ffffff"><p align="center"><b>Hello World!</b></p></body></html>

Jeg VED jeg kan modtage html-mails...
Avatar billede pgm Nybegynder
20. januar 2004 - 20:11 #7
Her har jeg en kopi af det jeg selv bruger, det virker på min egen server, min udviklingserver, freepaq og b-one:

det eneste der ændres er modtager / afsender.

$frafullName = 'Pelle';
$fraemail = 'min@email.dk';

$fullName = 'googolplex';
$tilemail = 'jjr@adslhome.dk';

$subject = 'Ny Email';

$message = '
<html>
<head>
<title>Ny Email</title>
</head>
<body>
<p />Det skulle gerne være den eneste tekst du ser i din mail.
</body>
</html>';               

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: ".$fullName." <".$tilemail.">\r\n";
$headers .= "From: ".$frafullName." <".$fraemail.">\r\n";
   
mail($tilemail, $subject, $message, $headers);
Avatar billede googolplex Novice
22. januar 2004 - 20:13 #8
Jeg har kigget her:

http://www.eksperten.dk/spm/455220

Måske er det pga. Spamfighter af jeg ikke kan modtage dem ordentligt ? Ekspertens går fint ind, men de bruger Mail_mime, jeg ville gerne vha. mail().

Prøver lige det sidste du skrev, men du får point nu!
Avatar billede googolplex Novice
22. januar 2004 - 20:16 #9
Det virker ikke, det må være noget hos mig, jeg giver op :(
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