Hi,

Ik heb een e-mail scriptje gemaakt alleen kan nergens vinden hoe ik de mail die wordt gestuurd in HTML wordt gepakt. Ik kan hierdoor het mailtje niet goed opmaken. Kan iemand kijken wat ik moet veranderen waardoor dit wel lukt?

Het bestandje contact.php dat ik heb gemaakt staat hieronder:


<?php
$to = $_REQUEST['email'] ;
$subject = "U heeft gewonnen!";
$email = "[email protected]" ;
$headers = "X-Mailer: PHP/" . phpversion() . "\n";
$headers .= "X-MSMail-Priority: High\n";
$headers .= "X-Priority: 1\n";
$headers .= "Content-Type: text/html;charset=iso-8859-1\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 7bit\n";
$headers .= "Message-ID: <".date("YmdHis").$_SERVER['SERVER_NAME'].">\n";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$mes
sage->setContentType("text/html");
$message = "Beste lezer<br \>
<b> Dit moet dik gedrukt</b><BR \>

<font size=+3> Dit moet een groot letterype zijn</font>" ;

$headers = "From: PixelPuzzel.nl";
$sent = mail($to, $subject, $message, $headers) ;
if($sent)
{print "Your mail was sent successfully"; }
else
{print "We encountered an error sending your mail"; }
?>

Ik hoop dat iemand me hierbij kan helpen want ben al vanaf half 11 vanochtend aan het zoeken wat ik fout doe maar kan het nergens vinden.

Gr. Floris
zet alles tussen '' IPV "" en somige headers staan dubbel, dus controleer je script even
De ingebouwde mail() functie van PHP is sowieso een drama, vooral voor het versturen van HTML email.

Een klasse als Swift Mailer werkt veel eenvoudiger en het versturen van een HTML email is hiermee een fluitje van een cent. Nooit meer geklooi met die headers, dus zeker de moeite waard om eens naar te kijken...
om te beginnen heb je dubbele headers. Daarnaast begin je de laatste ECHTE header pas bij de een na laatste $headers.. dit komt door de . die er niet goed staat.

in jou regel 12 moet een . komen zodat alles mee genomen wordt. eigenlijk, kunnen die 2 wel weg. je hebt ze al gedeclareerd. zoek even op internet wat een logische volgorde is.. en de X functies zou ik weglaten..
Zo werkt ie met Swiftmailer en een formpje erbij.

<?php
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
    echo '<table>
              <form action="" method="post">
                  <tr>
                      <td>Naam</td>
                      <td><input type="text" name="naam" /></td>
                  </tr>
                  <tr>
                      <td>E-mail</td>
                      <td><input type"text" name="email" /><td>
                  </tr>
              </form>
          </table>
         ';
}
else
{
    if(empty($_POST['naam']) || empty($_POST['email']))
    {
        echo 'Je moet alles invullen!
              <table>
                  <form action="" method="post">
                      <tr>
                          <td>Naam</td>
                          <td><input type="text" name="naam" /></td>
                      </tr>
                      <tr>
                          <td>E-mail</td>
                          <td><input type"text" name="email" /><td>
                      </tr>
                  </form>
              </table>
             ';
    }
    else
    {
        require_once "lib/Swift.php";
        require_once "lib/Swift/Connection/SMTP.php";
 
        $swift =& new Swift(new Swift_Connection_SMTP("server.tld", 25));
 
        $bericht = '<h1>Bericht</h1>
                    <p>
                        Blaat
                    </p>
                   '; 

        $message =& new Swift_Message("U heeft gewonnen!", $bericht, "text/html");
         
        if ($swift->send($message, $_POST['email'], "[email protected]"))
        {
            echo "Bericht verzonden!";
        }
        else
        {
            echo "Bericht verzonden!";
        }
    }
}
?>
Ik snap helemaal niks van dat Swift mailer. Ik heb die gehele documentatie doorgelezen maar weet er denk ik te weinig van af. Ik heb een heel simpel siteje waar gewoon een maitje moet gestuurd worden naar degene die zijn e-mail achter laat.

Het werkt nu prima alleen is de mail niet in HTML. Is er niet iets wat ik kan omzetten waardoor hij het leest als HTML? Of is het niet zo makkelijk?


@ Yorick 17;

Ik snap niet helemaal wat je bedoeld. Ik ben niet heel erg thuis in php maar ik zie nergens dubbele "" staan. Ik verder ook niet echt wat je bedoeld. Mijn script bestaat voor 99% uit gekopieerde stukjes script van een hele hoop verschillende sites. Ik dacht dat dit wel appeltje eitje zou zijn maar dat valt dus flink tegen :).

Is er een manier om dit makkelijk als leek op te lossen?

Gr. Floris
Eigenlijk best vreemd dat je niets van PHP weet en toch om hulp komt vragen. Dan zou je denk ik eerst een aantal tutorials moeten doorlezen.

Aangezien je graag kopieert komt mijn code toch van pas?
Kijk eens goed naar je headers, die staan tussen "" en dat moet '' zijn. Het antwoord waarom je probleem niet zo snel opgelost word is omdat niemand zin heeft om het wiel opnieuw uit te vinden, kortom iedereen maakt gebruik van Swift mailer of zo iets.

Voor de duidelijkheid een mail in html verzenden is een heel gedoe, geklooi met headers, charsets en zo voort. Je zult dus zelf de handleiding op php.net nog eens door moeten nemen!
yorick17 schreef op 13.12.2008 22:29
Voor de duidelijkheid een mail in html verzenden is een heel gedoe, geklooi met headers, charsets en zo voort.
Niet met Swiftmailer dus. Ben je fan van mail() ofzo?
@Evert
Ook hier geld dat je de topic even moet doorlezen. Want Floris gaf net aan niet te willen beginnen aan Swiftmailer. Vervolgens vroeg hij zich af waarom z'n probleem niet zo snel werd opgelost. Toen heb ik uitgelegd dat niet iedereen zin heeft om een hoop werk te doen dat al is gedaan. Dus het komt er op neer dat ook IK Swiftmailer aanmoedig!!
Ja, bedankt voor de code. Heb hem geprobeerd maar het blijft een onwijs geklooi met iets waar ik gewoon te weinig nog van weet. Het werkt namelijk nog steeds niet. Ik hoef alleen een e-mail adress in te vullen dus heb het naam gedeelte er al uitgehaald maar ik moet daarnaast ook de hele swift.php configureren en daar loop ik vast.
Ik heb al een aantal tutorials doorgelezen maar blijkbaar niet genoeg.

Ik zal dus moeten kijken hoe het loopt met een plain tekst e-mail :)

Bedankt voor de moeite iig.

Gr. Floris

Reageren