Avatar billede yHec Novice
07. marts 2005 - 17:03 Der er 7 kommentarer og
1 løsning

Problemer med mail() og file_get_contents()

Jeg er ved at lave et system der kan sende nyhedsbreve ud. Administratoren af dette er en der ikke har den ringeste forstand på HTML. Hun vil kunne sende ud i farver, med billeder på mv.

SÅ jeg havde forestillet mig, at hun laver nyhedsbrevet i fx DW, uploader det, kører en bid php, og vupti er der sendt noget ud i fin stil...

Jeg var sikker på at file_get_contents var vejen frem. Men det er det ikke.

Det driller....

Nedenstående er mail-koden:

<?php
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1";
$message = file_get_contents('mail.htm');
$sub="En streng";
if (mail(mailadresse,$sub,$message,$headers))
$msg="afsendt<p>\r";
else
$msg="fejl<p>";
?>

Her er så mail.php (det er en test ting):

<html>
<head>
<title>Nyheder</title>
</head>
<body>
<p>Dette er en html test til mail</p>
<p><strong>fed</strong></p>
<p><em>kursiv</em></p>
<p><em>&AElig;&Oslash;&Aring;</em></p>
<p><font size="+7">STOR</font></p>
<p><font color="#0000FF">bl&aring;</font></p>
</body>
</html>

Umiddelbart bliver filen hentet til $message, men den afsendes ikke. Jeg har fiflet mig frem til, at problemet opstår ved <FONT>-tagget. Parseren kan ikke lide +tegnet! Men det er sikkert ikke det eneste der ville kunne gå galt.

Det virker nemlig hvis den linje ikke er med. men det er jo lidt træls. Der må være en workaround!

Hvad gør jeg? Med andre ord, så skal hele mail.php lægges ind i $message som en lang streng, uden bøvl med diverse mystike tegn, der skal tages med, men accepteres!

/jan
Avatar billede Slettet bruger
07. marts 2005 - 20:21 #1
Du henter mail.htm og din fil hedder mail.php.
Avatar billede yHec Novice
07. marts 2005 - 21:06 #2
Ups.. det var en trykfejl i mit indlæg! Filen hedder mail.htm!

Ellers ville det nok heller ikke virke hvis jeg fjerner <FONT>-tagget :-)

/jan
Avatar billede detox Nybegynder
07. marts 2005 - 21:19 #3
Eksemplet fungerer ok når jeg tester det, selvom det er en lidt gammeldags html du har fået produceret der. Hvilken version af DW laver den slags kode?
Avatar billede yHec Novice
07. marts 2005 - 21:37 #4
detox> Hvordan har du testet?? Har den sendt en mail, med filindholdet?

Html'en er lavet i DW Studio MX (ver 4) - men jeg har selv rettet den til, idet headeren bliver sat i $message-variablen.

Jeg har ellers ikke problemer med mail() hos min udbyder (b-one). Det pudsige er forresten også, at jeg ikke får en fejlmelding på afsendelsen. Men der kommer ingen mail.
Avatar billede detox Nybegynder
07. marts 2005 - 21:48 #5
Ja, jeg har forsøgt med dit script som det er og det har jeg ingen problemer med.
Jeg tester det lige på mit webhotel, men jeg kan ikke umiddelbart se der skulle være problemer med det.
Avatar billede detox Nybegynder
07. marts 2005 - 21:56 #6
Der var et lille problem med de headers på mit webhotel, men dette virker:

$headers  = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
Avatar billede yHec Novice
08. marts 2005 - 00:16 #7
Hmmm, det hjalp ikke.

Jeg prøver videre!
Avatar billede yHec Novice
08. marts 2005 - 16:09 #8
HOLD KÆFT HVOR ÅNDSVAGT!
Undskyld jeg råber... Men grunden til at det ikke virkede lå ikke i scriptet eller mit mailprogram.. Det var simpelthen b-ones spam filter der fangede mailen... Og det er iøvrigt første gang det er sket - a deres spamfilter har fanget noget som helst!

Tak for alle forslagene!

/jan
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