chasdrury Posted September 28, 2006 Share Posted September 28, 2006 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] Quote Link to comment Share on other sites More sharing options...
alpine Posted September 28, 2006 Share Posted September 28, 2006 http://www.zend.com/zend/spotlight/sendmimeemailpart1.php Quote Link to comment Share on other sites More sharing options...
thedarkwinter Posted September 28, 2006 Share Posted September 28, 2006 Hiit could be that mail is not set up correctly in the php.iniI'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 settingsHope that helps?? Quote Link to comment Share on other sites More sharing options...
watts Posted September 28, 2006 Share Posted September 28, 2006 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.netI'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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.