Avatar billede stormdk Nybegynder
28. december 2005 - 18:10 Der er 16 kommentarer og
1 løsning

html i mail

Hej Exp.dk brugere!

Hvorfor bliver dette ikke udsendt som html ? Har kigget på manualen, og fulgt deres eksempel, men alligevel virker det ikke.


if($_POST['send_brev']){

$GetReceivers = mysql_query("SELECT * FROM users ORDER BY id DESC");
while($rs = mysql_fetch_array($GetReceivers)){

$fname = "DitTilbud.dk";
$email = "$rs[email]";
$subject = "Nyhedsbrev fra DitTilbud.dk";
$message = "<b>Hej</b>";


$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = 'To: $rs[username] <$email>, >' . "\r\n";
$headers .= 'From: DitTilbud.dk <noreply@dittilbud.dk>' . "\r\n";
$headers .= 'Cc: noreply@dittilbud.dk' . "\r\n";
$headers .= 'Bcc: noreply@dittilbud.dk' . "\r\n";



mail($email, $subject, $message, $headers);
}
}


Nogen ideer?

Mvh Christian Hjort
Avatar billede fixxxer Nybegynder
28. december 2005 - 18:28 #1
Den her linje vil ikke virke, fordi at det kun er dobbeltquotes der parser indvendigt PHP.. Samtidigt fjerner du tidligere indstillede headers, fordi du har glemt et . før = i samme linje.

$headers = 'To: $rs[username] <$email>, >' . "\r\n";


Prøv i stedet:

$headers .= 'To: '.$rs['username'].' <'.$email.'>' . "\r\n";
Avatar billede stormdk Nybegynder
28. december 2005 - 19:30 #2
Giver bare en vanvittig email, ser virkelig underligt ud. Det med modtagerne er rigtigt, det er kun html der skal sættes til.

Tak for dit svar.
Avatar billede nizo Nybegynder
28. december 2005 - 19:48 #3
Har du prøvet med mysql_fetch_assoc i stedet for mysql_fetch_array?
Avatar billede stormdk Nybegynder
28. december 2005 - 19:51 #4
Alt det med at hente brugeroplysninger virker perfekt, men variablen $message skal sendes som html.
Avatar billede nizo Nybegynder
28. december 2005 - 19:53 #5
Du kunne evt. ogsaa rette denne linie:

$headers = 'To: $rs[username] <$email>, >' . "\r\n";
Hvad betyder " , >" ? desuden kan du ikke forstætte en variabel der ikke er begyndt!
Indsæt disse header linier istedet for dem du har, altsaa

Fjern disse:

$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = 'To: $rs[username] <$email>, >' . "\r\n";
$headers .= 'From: DitTilbud.dk <noreply@dittilbud.dk>' . "\r\n";
$headers .= 'Cc: noreply@dittilbud.dk' . "\r\n";
$headers .= 'Bcc: noreply@dittilbud.dk' . "\r\n";

og sæt dette ind i stedet

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: $rs[username] <$email>' . "\r\n";
$headers .= 'From: DitTilbud.dk <noreply@dittilbud.dk>' . "\r\n";
$headers .= 'Cc: noreply@dittilbud.dk' . "\r\n";
$headers .= 'Bcc: noreply@dittilbud.dk' . "\r\n";
Avatar billede nizo Nybegynder
28. december 2005 - 19:56 #6
Cc og Bcc behøver du ikke at definerer medmindre du gerne vil have sendt to kopier til noreply@dittilbud.dk..
Uden Cc og Bcc virker fint :o)

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: $rs[username] <$email>' . "\r\n";
$headers .= 'From: DitTilbud.dk <noreply@dittilbud.dk>' . "\r\n";
Avatar billede stormdk Nybegynder
28. december 2005 - 20:03 #7
Hjælper ikke, giver bare en ukendt afsender i stedet :S
Avatar billede nizo Nybegynder
28. december 2005 - 20:10 #8
Direkte taget fra php.net, lavet om til dine oplysninger og "forbedret", prøv det her: Først uden while paa og derefter med..

<?php
// multiple recipients
$to  = $rs[email];

// subject
$subject = "Nyhedsbrev fra DitTilbud.dk";

// message
$message = "<b>Hej</b>";

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

// Additional headers
$headers .= "To: ".$rs[username]." <".$rs[email].">" . "\r\n";
$headers .= "From: DitTilbud.dk <noreply@dittilbud.dk>" . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>
Avatar billede fixxxer Nybegynder
28. december 2005 - 20:13 #9
nizo >> Hvordan skulle

$headers .= 'To: $rs[username] <$email>' . "\r\n";

nogensinde kunne virke?
Hvis jeg ikke husker helt forkert, bliver $rs[username] og $email ikke opløst inde i single-quotes?
Avatar billede nizo Nybegynder
28. december 2005 - 20:23 #10
fixxxer:
Jeg har heller ikke paa noget tidspunkt sagt noget modsat! Derfor rettede jeg det til
$headers .= "To: ".$rs[username]." <".$rs[email].">" . "\r\n";
Avatar billede neess Nybegynder
29. december 2005 - 14:10 #11
<?
function SendMail($From,$FromName,$To,$ToName,$Subject,$Text,$Html){
$OB="----=_OuterBoundary_000";
$IB="----=_InnerBoundery_001";
$Html=$Html?$Html:preg_replace("/\n/","{br}",$Text)
  or die("neither text nor html part present.");
$Text=$Text?$Text:"Sorry, but you need an html mailer to read this mail.";
$From or die("sender address missing");
$To or die("recipient address missing");
 
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: ".$FromName." <".$From.">\n";
$headers.="To: ".$ToName." <".$To.">\n";
$headers.="Reply-To: ".$FromName." <".$From.">\n";
$headers.="X-Priority: 1\n";
$headers.="X-MSMail-Priority: High\n";
$headers.="X-Mailer: My PHP Mailer\n";
$headers.="Content-Type: multipart/mixed;\n\tboundary=\"".$OB."\"\n";

//Messages start with text/html alternatives in OB
$Msg ="This is a multi-part message in MIME format.\n";
$Msg.="\n--".$OB."\n";
$Msg.="Content-Type: multipart/alternative;\n\tboundary=\"".$IB."\"\n\n";

//plaintext section
$Msg.="\n--".$IB."\n";
$Msg.="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
$Msg.="Content-Transfer-Encoding: quoted-printable\n\n";
// plaintext goes here
$Msg.=$Text."\n\n";

// html section
$Msg.="\n--".$IB."\n";
$Msg.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n";
$Msg.="Content-Transfer-Encoding: base64\n\n";
// html goes here
$Msg.=chunk_split(base64_encode($Html))."\n\n";

// end of IB
$Msg.="\n--".$IB."--\n";

// attachments
if($AttmFiles){
  foreach($AttmFiles as $AttmFile){
  $patharray = explode ("/", $AttmFile);
  $FileName=$patharray[count($patharray)-1];
  $Msg.= "\n--".$OB."\n";
  $Msg.="Content-Type: application/octetstream;\n\tname=\"".$FileName."\"\n";
  $Msg.="Content-Transfer-Encoding: base64\n";
  $Msg.="Content-Disposition: attachment;\n\tfilename=\"".$FileName."\"\n\n";
         
  $Msg.=$FileContent;
  $Msg.="\n\n";
  }
}
 
//message ends
$Msg.="\n--".$OB."--\n";
mail($To,$Subject,$Msg,$headers);   
//syslog(LOG_INFO,"Mail: Message sent to $ToName <$To>");
}
?>

Jeg plejer at bruge denne funktion, og den spiller.
Avatar billede stormdk Nybegynder
29. december 2005 - 20:08 #12
Fandt ud af det var fordi mit host ikke tilladte udsendelse af html emails :(

***** frac.dk :-)

Men tak for jeres hjælp. Jeg endte med at bruge egen kode, men neess du kan få de point :)
Avatar billede neess Nybegynder
29. december 2005 - 20:13 #13
tak tak.
Avatar billede nizo Nybegynder
29. december 2005 - 20:20 #14
Det var altsaa neess der fik point fordi han kom med en eller anden underlig kode, hvorimod jeg (og fixxxer) har prøvet at hjælpe dig og brugt tid paa det, det er ikke den fedeste tak man faar.
Avatar billede neess Nybegynder
29. december 2005 - 20:23 #15
Underlig kode ???

Det er en function som kan sende html mails, som han efterlyser.

Koden virker. Så der er ikke noget mærkeligt i den.
Avatar billede nizo Nybegynder
29. december 2005 - 20:27 #16
Ja, saa en kode der er totalt irrelavant for problemet!
Avatar billede fixxxer Nybegynder
30. december 2005 - 01:22 #17
Umiddelbart synes jeg at det er irrelevant at diskutere hvorvidt vores script virker kontra et andet script, når problemer er hos den host stormdk bruger - altså noget han skulle være opmærksom på før han oprettede et spørgsmål vedr. problemet..

At han så acceptere det eneste svar der er gyldigt er jo nok til at jeg næppe gider bruge tid på at hjælpe brugeren fremover, med mindre han selvfølgelig har en god grund til dette..
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