How can I send an email with image attachments from a PHP form?

Discussion in 'PHP' started by sagaa001, Oct 5, 2016.

  1. #1
    <?php
    session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <div class="contactid2 ">
                <div class="clear"></div>
                <h2>Send an email. All fields <span class="colour1">with an <span class="error">*</span> are required.</span></h2>
                                        <div>&nbsp;</div>
                                        <div>
                                            <?php
                                            //print_r($_POST);
                                            $fname=''; $address=''; $mailt=''; $telephone=''; $comments=''; $id=''; $err = false; $secltbman=0;
                                            $error_arry = array('fname'=>'', 'address'=>'', 'mailt'=>'', 'telephone'=>'', 'comments'=>'',);
                                           
                                            if($_SERVER["REQUEST_METHOD"] == "POST")
                                            {
                                            if($_POST['fname']=='')       
                                            { $error_arry['fname']='Please Enter First Name.'; $err = true;}
                                            else
                                            {$fname = $_POST['fname'];}
                                           
                                            if($_POST['taskOption']=='')       
                                            { $error_arry['taskOption']='task option is required.'; $err = true;}
                                            else
                                            {$taskOption = $_POST['taskOption'];}
                                           
                                           
                                           
                                           
                                           
                                            if($_POST['address']=='')   
                                            {$error_arry['address']='Please Enter Address.'; $err = true;}
                                            else
                                            {$address = $_POST['address'];}
                                           
                                            if($_POST['mailt']=='')       
                                            { $error_arry['mailt']='Please Enter Email.'; $err = true;}
                                            elseif(!filter_var($_POST['mailt'], FILTER_VALIDATE_EMAIL))
                                            {$error_arry['mailt']='Please Enter Valid Email.'; $err = true;}
                                            else
                                            {$mailt=$_POST['mailt'];}
                                           
                                            if($_POST['telephone']=='')       
                                            {$error_arry['telephone']='Please Enter Telephone.'; $err = true;}
                                            else
                                            {$telephone=$_POST['telephone'];}
                                           
                                            if($_POST['vehicle2']=='')       
                                            {$error_arry['vehicle2']='Please Enter vehicle2.'; $err = true;}
                                            else
                                            {$vehicle2=$_POST['vehicle2'];}
                                           
                                            if($_POST['comments']=='')       
                                            {$error_arry['comments']='Please Enter Inquiry.'; $err = true;}
                                            else
                                            {$comments=$_POST['comments'];}
                                            //Check if the security code and the session value are not blank
                                            //and if the input text matches the stored text
                                            if($_POST['txtCaptcha']==''){$error_arry['txtCaptcha']='Please Enter Characters.'; $err = true;}
                                            elseif($_REQUEST["txtCaptcha"] != $_SESSION["security_code"])
                                            {$error_arry['txtCaptcha']='Invalid Characters.'; $err = true;}
                                           
                                           
                                            if(!$err)
                                            {
                                            $mailmessage = '';
                                           
                                           
                                            $color = implode(', ', $_POST['color'] );
                                            $to = 'mail@mail.com';//set to mail here
                                            $subject = 'Inquiry to Pet Web,';
                                            $msg = '
                                            Name     :'.$fname.'
                                            TaskOption     :'.$taskOption.'
                                            Color    :'.$color.'   
                                            vehicle2    :'.$vehicle2.'                                       
                                            Address     :'.$address.'
                                            Telephone No(S)     :'.$telephone.'    
                                            Email Address    :'.$mailt.'
                                            Inquiry    :'.$comments.'
                                           
                                                                                    ';
                                           
                                           
                                            $headers = 'From: '.$mailt . "\r\n" .
                                            'Reply-To: ' .$mailt. "\r\n" .
                                            'Bcc: mail@mail' . "\r\n" .
                                            'X-Mailer: PHP/' . phpversion();
                                           
                                            if(!mail($to,$subject,$msg, $headers))
                                            {
                                            echo "<span style='color:#00CC00; font-size:11px'>Mail sending Fail. Please try again...</span>";
                                            }
                                            else
                                            {
                                            echo "<span style='color:#00CC00; font-size:11px'>Mail has been sent.</span>";
                                            }
                                            }
                                            }   
                                            ?>
                                        </div>
                                        <div class="clear"></div>
                                        <form name="dvn" action="" method="post">
                                        <?php
                                        if(!empty($error_arry['fname']))
                                        {
                                        echo '<div class="filds"><div class="con_heading"></div><div class="con_fild"><span class="error">'.$error_arry['fname'].'</span></div></div>';
                                        }
                                        ?>
                                        <div class="filds">
                                        <div class="con_heading">Name<span class="error">*</span> : </div>
                                        <div class="con_fild"><input type="text" name="fname" id="fname" class="contact_input1" value="<?php print $fname;?>" /></div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="filds">
                                        <div class="con_heading">listboxBreedDog<span class="error">*</span> : </div>
                                        <div class="con_fild"><select name="taskOption">
      <option value="First">First</option>
      <option value="Second">Second</option>
      <option value="Third">Third</option>
    </select></div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="filds">
                                        <div class="con_heading">Color<span class="error">*</span> : </div>
                                        <div class="con_fild">
                                        <img src="stoneheart.gif" width="50" height="50"><br />
                                        <input type="checkbox" name="color[]" value="Red" /> Red<br />
                                        <img src="stoneheart.gif" width="50" height="50"><br />
                                        <input type="checkbox" name="color[]" value="Blue" /> Blue<br />
                                        <img src="stoneheart.gif" width="50" height="50"><br />
                                        <input type="checkbox" name="color[]" value="Black" /> Black</div>
                                        </div>
                                        <div class="clear"></div>
                                        <div style="height:40px;"></div>
                                       
                                        <div class="filds">
                                            <div class="con_heading">listboxBreedDog<span class="error">*</span> : </div>
                                            <div class="con_fild">
                                            <img src="stoneheart.gif" width="50" height="50">
                                            <input type="radio" name="vehicle2" value="I have a bike"> I have a bike<br>
                                            <img src="stoneheart.gif" width="50" height="50">
                                            <input type="radio" name="vehicle2" value="I have a car" checked="checked"> I have a car<br>
                                            </div>
                                        </div>
                                        <div class="clear"></div>
                                        <div style="height:40px;"></div>
                                        <?php
                                        if(!empty($error_arry['address']))
                                        {
                                        echo '<div class="filds"><div class="con_heading"></div><div class="con_fild"><span class="error">'.$error_arry['address'].'</span></div></div>';
                                        }
                                        ?>
                                        <div class="filds">
                                        <div class="con_heading">Address<span class="error">*</span> :</div>
                                        <div class="con_fild"><textarea name="address" id="address"  class="contact_input2"><?php print $address;?></textarea></div>
                                        </div>
                                        <div class="clear"></div>
                                        <?php
                                        if(!empty($error_arry['mailt']))
                                        {
                                        echo '<div class="filds"><div class="con_heading"></div><div class="con_fild"><span class="error">'.$error_arry['mailt'].'</span></div></div>';
                                        }
                                        ?>
                                        <div class="filds">
                                        <div class="con_heading">E-mail<span class="error">*</span> :</div>
                                        <div class="con_fild"><input type="text" id="mailt" name="mailt" class="contact_input1" value="<?php print $mailt;?>" /></div>
                                        </div>
                                        <div class="clear"></div>
                                        <?php
                                        if(!empty($error_arry['telephone']))
                                        {
                                        echo '<div class="filds"><div class="con_heading"></div><div class="con_fild"><span class="error">'.$error_arry['telephone'].'</span></div></div>';
    
                                        }
                                        ?>
                                        <div class="filds">
                                        <div class="con_heading">Tel<span class="error">*</span> : </div>
                                        <div class="con_fild"><input type="text" name="telephone" id="telephone" class="contact_input1" value="<?php print $telephone;?>" /></div>
                                        </div>
                                        <div class="clear"></div>
                                        <?php
                                        if(!empty($error_arry['comments']))
                                        {
                                        echo '<div class="filds"><div class="con_heading"></div><div class="con_fild"><span class="error">'.$error_arry['comments'].'</span></div></div>';
                                        }
                                        ?>
                                        <div class="filds">
                                        <div class="con_heading">Inquiry<span class="error">*</span> :</div>
                                        <div class="con_fild"><textarea class="contact_input2" name="comments" id="comments"><?php print $comments;?></textarea></div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="filds">
                                        <div class="con_heading">Select A File To Upload:</div>
                                        <div class="con_fild"><input type="file" name="uploaded_file"></div>
                                        </div>
                                        <div class="clear"></div>
                                       
                                        <?php
                                        if(!empty($error_arry['txtCaptcha']))
                                        {
                                        echo '<div class="filds"><div class="con_heading"></div><div class="con_fild"><span class="error">'.$error_arry['txtCaptcha'].'</span></div></div>';
                                        }
                                        ?>
                                        <div class="filds">
                                        <div class="con_heading"></div>
                                        <div class="con_fild"><span style="color:#3C0; font-size:11px;">Please type the characters you see in the picture below.&nbsp;</span></div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="filds">
                                        <div class="con_heading"></div>
                                        <div class="con_fild"><div class="cap_img"><img id="imgCaptcha" src="create_image.php" /></div><div class="type_img"><input id="txtCaptcha" type="text" name="txtCaptcha" value="" maxlength="6"  class="scode" /></div></div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="filds">
                                        <div class="con_heading"></div>
                                        <div class="con_fild">&nbsp;</div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="filds">
                                        <div class="con_heading"></div>
                                        <div class="con_fild">
                                            <div class="btn_sec"><input type="reset" value="Reset" name="reset" onClick="reset_fld(this.form)"  class="clear1"></div>
                                            <div><input type="submit" name="subnit" value="Submit" class="submit"/></div>
                                        </div>
                                        </div>
                                        </form>
        </div>
    </body>
    </html>
    PHP:

     
    sagaa001, Oct 5, 2016 IP
  2. Einheijar

    Einheijar Well-Known Member

    Messages:
    539
    Likes Received:
    13
    Best Answers:
    3
    Trophy Points:
    165
    #2
    You can use
    
    $file = $path ."/". $filename;
    $content = file_get_contents($file);
    $content = chunk_split(base64_encode($content));
    
    // a random hash will be necessary to send mixed content
    $separator = md5(time());
    
    // carriage return type (we use a PHP end of line constant)
    $eol = PHP_EOL;
    
    // main header (multipart mandatory)
    $headers ="From: name <test@test.com>". $eol;
    $headers .="MIME-Version: 1.0". $eol;
    $headers .="Content-Type: multipart/mixed; boundary=\"". $separator ."\"". $eol;
    $headers .="Content-Transfer-Encoding: 7bit". $eol;
    $headers .="This is a MIME encoded message.". $eol;
    
    // message
    $headers .="--". $separator . $eol;
    $headers .="Content-Type: text/plain; charset=\"iso-8859-1\"". $eol;
    $headers .="Content-Transfer-Encoding: 8bit". $eol;
    $headers .= $message . $eol;
    
    // attachment
    $headers .="--". $separator . $eol;
    $headers .="Content-Type: application/octet-stream; name=\"". $filename ."\"". $eol;
    $headers .="Content-Transfer-Encoding: base64". $eol;
    $headers .="Content-Disposition: attachment". $eol;
    $headers .= $content . $eol;
    $headers .="--". $separator ."--";
    
    //SEND Mailif(mail($mailto, $subject,"", $headers)){
    echo "mail send ... OK";// or use booleans here}else{
    echo "mail send ... ERROR!";}
    Code (php):
    Inline email attachments are a bit more a hassle though :(
     
    Einheijar, Oct 5, 2016 IP
  3. sarahk

    sarahk iTamer Staff

    Messages:
    28,875
    Likes Received:
    4,547
    Best Answers:
    123
    Trophy Points:
    665
    #3
    There's a great library called phpMailer which might make life easier.
     
    sarahk, Oct 5, 2016 IP
  4. sagaa001

    sagaa001 Active Member

    Messages:
    19
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    86
    #4
    OK. Thanks

     
    sagaa001, Oct 6, 2016 IP