Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New Coder
    Join Date
    Sep 2010
    Posts
    88
    Thanks
    24
    Thanked 0 Times in 0 Posts

    html newsletter email help needed

    Hi,

    I'm currently struggling and ive ran out of ideas and cannot find any help on the net, after 3 days of stressing ive decided to ask for help, any help would be hugly appreciated.

    This is what I have...

    1) I have a newsletter script on my homepage that users type in there email address and hit subscribe (working)
    2) that emaill address then gets sent to a flat file/txt file and saves in there (working)
    3) I created a webpage with a form area and 2 editboxes 'subject & email from' and 1 textarea 'message' and a submit button (working)
    4) When I input the data for the subject, from & message and hit send, that reads the flatfile/txt file and emails those people inside the flatfile/txt file (working)

    5) Everything works fine if the email is sent in plain text format but it will not send HTML 'images,links' etc etc (not working)

    *Ive tryed everything I can think of and ive looked up and down the script and cannot see any fault. All the content-type is set to text/html and so on. I'm just thinking its something to do with php inside the script its sending from, I know a little about php but im not that clued up on it like a master.

    *when i tryed to show an image in the email using <IMG SRC="http://www.mysite.co.uk/test/images/my_logo.png" ALT="logo"> I recieve an email that looks like this:
    Code:
    <IMG SRC=\"http://www.mysite.co.uk/test/images/my_logo.png\" ALT=\"logo\">
    Like I say, any help is hugly appreciated

    heres the code I have...

    PHP Code:
    <?php 
    $send 
    $_POST['send']; 
    if(
    $send){ 
                    
    $email $_POST['email']; 
                     
                    
    $emailfile file_get_contents("mailing.txt"); 
                    
    $emaillist explode("\n"$emailfile); 
                     
                    foreach (
    $emaillist as $value
                    { 
                    
    mail($value$_POST['subject'], $_POST['message'], "From: $email"); 
                    } 

    ?>
    <?php
       
    if($_SERVER['REQUEST_METHOD'] == 'POST')
       {
             
    $mailto $email;
             
    $subject $subject;
             
    $message .= $message;
             
    $header  "From: '.$mailfrom."."\r\n";
             
    $header .= "Reply-To: '.$mailfrom."."\r\n";
             
    $header .= "MIME-Version: 1.0"."\r\n";
             
    $header .= "Content-Type: text/html; charset=iso-8859-1"."\r\n";
             
    $header .= "Content-Transfer-Encoding: 8bit"."\r\n";
             
    $header .= "X-Mailer: PHP v".phpversion();
             
    mail($mailto$subject$message$header);
             
    header("Location: newslettersuccess.php"); 
             exit;
          }
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Untitled Page</title>
    <meta name="generator" content="mine">
    <style type="text/css">
    div#container
    {
       width: 710px;
       position: relative;
       margin-top: 0px;
       margin-left: auto;
       margin-right: auto;
       text-align: left;
    }
    </style>
    <style type="text/css">
    body
    {
       text-align: center;
       margin: 0;
       background-color: #FFFFFF;
       color: #000000;
    }
    </style>
    <script type="text/javascript">
    <!--
    function ValidateNewsletter_form(theForm)
    {
    if (theForm.Editbox2.value == "")
    {
       alert("subject required");
       theForm.Editbox2.focus();
       return false;
    }
    if (theForm.Editbox2.value.length < 3)
    {
       alert("subject required");
       theForm.Editbox2.focus();
       return false;
    }
    var strValue = theForm.Editbox1.value;
    var strFilter = /^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i;
    if (!strFilter.test(strValue))
    {
       alert("email required");
       theForm.Editbox1.focus();
       return false;
    }
    if (theForm.Editbox1.value == "")
    {
       alert("email required");
       theForm.Editbox1.focus();
       return false;
    }
    if (theForm.Editbox1.value.length < 3)
    {
       alert("email required");
       theForm.Editbox1.focus();
       return false;
    }
    return true;
    }
    //-->
    </script>
    </head>
    <body>
    <div id="container">
    <div id="wb_Text2" style="margin:0;padding:0;position:absolute;left:12px;top:4px;width:287px;height:34px;text-align:left;z-index:6;">
    <font style="font-size:29px" color="#00D5FF" face="Arial"><b>Newsletter</b></font></div>
    <div id="wb_Text1" style="margin:0;padding:0;position:absolute;left:12px;top:30px;width:712px;height:18px;text-align:left;z-index:7;">
    <font style="font-size:16px" color="#C0C0C0" face="Arial">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</font></div>
    <div id="wb_Form2" style="position:absolute;background-color:#C0C0C0;left:64px;top:54px;width:603px;height:566px;z-index:8">
    <form name="Newsletter_form" method="post" action="<?php echo basename(__FILE__); ?>" enctype="text/html" id="Form2" onsubmit="return ValidateNewsletter_form(this)">
    <div id="wb_Text4" style="margin:0;padding:0;position:absolute;left:8px;top:458px;width:60px;height:14px;text-align:left;z-index:0;">
    <font style="font-size:11px" color="#000000" face="Arial">subject:</font></div>
    <input type="text" id="Editbox2" style="position:absolute;left:55px;top:454px;width:537px;height:18px;border:1px #C0C0C0 solid;font-family:Arial;font-size:13px;z-index:1" name="subject" value="Ibloo Newsletter">
    <div id="wb_Text3" style="margin:0;padding:0;position:absolute;left:8px;top:487px;width:60px;height:14px;text-align:left;z-index:2;">
    <font style="font-size:11px" color="#000000" face="Arial">from:</font></div>
    <input type="text" id="Editbox1" style="position:absolute;left:55px;top:482px;width:537px;height:18px;border:1px #C0C0C0 solid;font-family:Arial;font-size:13px;z-index:3" name="email" value="newsletter@ibloo.co.uk">
    <textarea name="message" id="TextArea2" style="position:absolute;left:8px;top:7px;width:585px;height:363px;border:1px #C0C0C0 solid;font-family:Arial;font-size:13px;z-index:4" rows="21" cols="91"></textarea>
    <input type="submit" id="Button2" name="send" value="Submit" style="position:absolute;left:499px;top:535px;width:96px;height:25px;font-family:Arial;font-size:13px;z-index:5">
    </form>
    </div>
    </div>
    </body>
    </html>

    Kind regards,
    paffley

  • #2
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Location
    Saskatoon, Saskatchewan
    Posts
    16,979
    Thanks
    4
    Thanked 2,659 Times in 2,628 Posts
    This will give you troubles. You've broken the emailing up into more than one location. The second block looks for the most part alright, its the first block that's missing the headers for the html.
    PHP Code:
    if (isset($_POST['send']))
    {
        
    $email $_POST['email']; 
        
    $subject $_POST['subject'];
        
    $message $_POST['message'];


        
    $headers "From: " $email "\r\n";
        
    $header .= "Reply-To: '.$email "."\r\n";
        
    $header .= "MIME-Version: 1.0"."\r\n";
        
    $header .= "Content-Type: text/html; charset=iso-8859-1"."\r\n";
        
    $header .= "Content-Transfer-Encoding: 8bit"."\r\n";
        
    $header .= "X-Mailer: PHP v".phpversion(); 

        
    $emaillist file("mailing.txt"); 
        foreach (
    $emaillist AS $addr)
        {
            
    mail($addr$subject$message$header);
        }  

    You will need to validate the email, subject and message to prevent a mail injection. Anything provided by a user is considered to be tainted and needs to be validated before using it.
    PHP Code:
    header('HTTP/1.1 420 Enhance Your Calm'); 


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •