hector vox Posted September 20, 2006 Share Posted September 20, 2006 Hello,I'm having a lot of difficulty getting HTML into an email. The link won't function in the email: <p> To confirm, <a>click this link </a> </p> is what appears in the email. I think it must be to do with the " or ' around the $body bit. tried various things, but I can't make it work. Help! [code]<?php $headers ="From:newsletter@northavenspeakers.com\r\n"; $headers .="Reply-To:newsletter@northavenspeakers.com\r\n"; $headers .="Content-Type: text/html;\r\n charset=\"iso-8859-1\"\r\n"; if (isset( $_POST['submit'])) { $email = $_POST['email']; $body = ' <html> <head> <title> Subscription to Northaven Speakers Club </head> </head> <body> <P> You have subscribed to receive Northaven Speakers Club newsletter </P> <P> To confirm, <a "href=www.thethingis.co.uk/speakers/confirm?email=?'.$email.'">click this link </a> </P> </body> </html>'; mail ($_POST['email'], "Subscribe to Northaven Speakers", $body, $headers); echo "trying to send something"; unset ( $_POST['submit'] ) ; }; ?>[/code] Quote Link to comment Share on other sites More sharing options...
hector vox Posted September 20, 2006 Author Share Posted September 20, 2006 Is it possible that I have specified the wrong format in the $header variable. I've tried a lot of solutions to this problem, but what ever I do I get the same result as described above. Or, am I doing something really stupid? I've spent a while staring at this one. Quote Link to comment Share on other sites More sharing options...
onlyican Posted September 20, 2006 Share Posted September 20, 2006 This is my Mailer example[code]<?php$to = $email;$subject = "Registration with XX";$message = "Hello ".$name."<br />\n"."Thank you for registering with <a href='http://www.example.com'>Exmaple</a><br />\n"."Your username is <strong>".$username."</stroing><br /><br />\n"."If anyone sends you a message, an email will be sent to you letting you know, you can log in, and view your new messages<br />\n"."If you have any problems, you can contact me on this email address (<a href='mailto:info@example.com'>info@example.com</a>)<br /><br />\n\n"."Best Regards<br /><br />\n\n"."Jamie<br />\n";$headers = 'MIME-Version: 1.0' . "\r\n";$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";$headers .= 'To: '.$name.' <'.$email.'>,' . "\r\n";$headers .= 'From: ME<info@example.com>' . "\r\n";if(mail($to, $subject, $message, $headers)){?>[/code]Try thatand please please please check the email before sending the emailor you will open yourself up to a world of spam, (people using your form to spam other people) Quote Link to comment Share on other sites More sharing options...
hector vox Posted September 20, 2006 Author Share Posted September 20, 2006 I'll give that a go. What do you mean by check the email? Is it something to do with that little if at the end. Quote Link to comment Share on other sites More sharing options...
onlyican Posted September 20, 2006 Share Posted September 20, 2006 noI mean the fact you are using the email direct from the form, without validating itPeople can put some code in there, and send 100's of emails from ur account, which in return will black list you Quote Link to comment Share on other sites More sharing options...
craygo Posted September 20, 2006 Share Posted September 20, 2006 This line is wrong[code]<a "href=www.thethingis.co.uk/speakers/confirm?email=?'.$email.'">[/code]should be[code]<a href="www.thethingis.co.uk/speakers/confirm?email=?'.$email.'">[/code]Ray Quote Link to comment Share on other sites More sharing options...
hector vox Posted September 20, 2006 Author Share Posted September 20, 2006 Thanks Ray, that's exactly what I needed. This validation thing, am I ok if I limit the lenght of the email? Thankks again, hector. Quote Link to comment Share on other sites More sharing options...
craygo Posted September 20, 2006 Share Posted September 20, 2006 It's not the limit. You should have your script check your variables and make sure they are valid. What they are saying is someone could use your page to start sending out emails from your server by just adding things to your url. There is a script out there which will validate and email address as best as possible. I will post when I find it.You should not make a page like this public!!! What are you using it for anyway??Ray Quote Link to comment Share on other sites More sharing options...
hector vox Posted September 20, 2006 Author Share Posted September 20, 2006 The idea is that you click the link, and confirm that you want to aign up to a mailing list. I can tell that you're going to tell me that the whole method I'm using is wrong. So you click url/confirm?email=you@email.com, which Gets the email adress, signs you up and sends you another email with a little present for signing up. Thats my plan, but as you've probably guessed, I'm not exactly sure what I'm doing. Cheers for your time, Jimmy Quote Link to comment Share on other sites More sharing options...
onlyican Posted September 20, 2006 Share Posted September 20, 2006 what I do isAdd an extra field in the DatabaseCreate a UNIQUE id and add it in thereUnique ID can be something like$unique_id = md5($email);(Encrypts the email to a 32 bit code)or maybe using RAND functions, Also combined with md5I am not going to give my code, as I dont want people starting to hack my sites. but I create a Unique ID, and then md5 encrypt it 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.