Jump to content

Sending HTML with a PHP script


chasdrury

Recommended Posts

Hi guys,

I am a complete PHP newbie - I am helping a mate design a form on his website for people to sign up for a newsletter, and when they do they get emailed a HTML 50% off voucher.

I have the MySQL database, the form and the PHP working to submit the details to the SQL and that works perfectly.

There are only 3 fields on the form - Name, phone and email. What I am now trying to do is send an HTML email to the email address they specify - so effectively it sends the voucher automatically. When the script is run it forwards them to a thankyou html page.

I found the PHP for the HTML email on this site somewhere, and put it in my script. When I press submit on the form, it submits the data and displays the thanks page, and no email appears! The code is below - any ideas where I am going wrong?

I have only been using PHP for 3 days now, and its great! I hope to get into it more!

Chas


[code]<?
$database="web15-hairkandi";
$name=$_POST['name'];
$phone=$_POST['phone'];
$email=$_POST['email'];
$from = "info@hairkandi.com";
$subject = "Hello! This is HTML email";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

$query = "INSERT INTO contacts VALUES ('','$name','$phone','$email')";
mysql_query($query);

    //begin message
    $message = <<<EOF
<html>
  <body bgcolor="#DCEEFC">
    <center>
        <b>TEST EMAIL</b> <br>
        <font color="red">DOES THIS WORK?</font> <br>
        <a href="http://www.google.com/">* maaking.com</a>
    </center>
      <br><br>TEST TEST <br> TEST<br>TEST
  </body>
</html>
EOF;
  //end of message
    $headers  = "From: $from\r\n";
    $headers .= "Content-type: text/html\r\n";
    $email = "$email, $from"; // this will send to both emails at the same time.
    // now lets send the email.
    mail($email, $subject, $message, $headers);
header( "Location: thanks.htm" );

mysql_close();
?>[/code]
Link to comment
Share on other sites

Hi

it could be that mail is not set up correctly in the php.ini

I'm not 100% sure how to set it up, but the way i do it is to set the smtp server dynamically:

    // now lets send the email.
          ini_set("SMTP", "127.0.0.1");  // or another ip address foran smtp server ifthe local machine is running an smtp server
    mail($email, $subject, $message, $headers);
        ini_restore("SMTP");              // revert back to php.ini settings

Hope that helps??
Link to comment
Share on other sites

Sending HTML email can be tricky with the mail() class.  I would suggest using PHPMailer.  It's a class you can download that makes it much easier to send HTML emails.  Check out the site http://phpmailer.sourceforge.net

I've been trying to sort out email problems lately and this made all the difference.  There's also a good tutorial on the same site that walks you through how to do it.

Watts
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.