Thursday, 2 May 2013

Php Email with Attachment

<?php
if($_POST['frm']==1)
    {   
    $upload_folder="uploadfiles/";
    $filename1=$_FILES['logo1']['name'];
    $filename2=$_FILES['logo2']['name'];
    $type1=substr($filename1,strrpos($filename1, '.') + 1);
    $type2=substr($filename2,strrpos($filename2, '.') + 1);
    $size1=$_FILES["your_id"]["size"]/1024;
    $size2=$_FILES["picture_holding_id"]["size"]/1024;
    $max_allowed_file_size = 100;
    $allowed_extensions = array("jpg", "jpeg", "gif", "bmp");
    /* if($size1>0)
    {
        if($size1> $max_allowed_file_size )
        {
        $err[]= "\n Size of file should be less than $max_allowed_file_size";
        }
    }
    if($size2>0)
    {
        if($size2> $max_allowed_file_size )
        {
        $err[]= "\n Size of file should be less than $max_allowed_file_size";
        }
    }
    $allowed_ext = false;
    if($size1>0)
    {
        for($i=0; $i<sizeof($allowed_extensions); $i++)
        {
        if(strcasecmp($allowed_extensions[$i],$type1) == 0)
          $allowed_ext = true;
        }
    }
    if($size2>0)
    {
        for($i=0; $i<sizeof($allowed_extensions); $i++)
        {
        if(strcasecmp($allowed_extensions[$i],$type2) == 0)
            $allowed_ext = true;
        }
    }
    if($size1>0 || $size2>0)
    {
        if(!$allowed_ext)
        {
            $err[]= "\n the uploaded file is not supported file type.

    only the following file types are supported: ".implode(',',$allowed_extensions);
        }
    } */

    $path_of_uploaded_file1 = $upload_folder . $filename1;
    $path_of_uploaded_file2 = $upload_folder . $filename2;
    $tmp_path1 = $_FILES["logo1"]["tmp_name"];
    $tmp_path2 = $_FILES["logo2"]["tmp_name"];
    /* if(is_uploaded_file($tmp_path1))
    {
        if(!copy($tmp_path1,$path_of_uploaded_file1))
        {
            $err[]= '\n error while copying the uploaded file';
        }
    }
    if(is_uploaded_file($tmp_path2))
    {
        if(!copy($tmp_path2,$path_of_uploaded_file2))
        {
            $err[]= '\n error while copying the uploaded file';
        }
    } */
    $files = array($path_of_uploaded_file1,$path_of_uploaded_file2);
    $to="kishanlal.laxkar@dotsquares.com";
    $subject="Host Update Form";

    $headers = 'From: abc@xyz.com';
    $message="Hello This is an attachment mail\n";
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

    $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" .

     " boundary=\"{$mime_boundary}\"";

    $message = "This is a multi-part message in MIME format.\n\n" .

    "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .

    "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
    $message .= "--{$mime_boundary}\n";

    for($x=0;$x<count($files);$x++){
        $file = fopen($files[$x],"rb");
        $data = fread($file,filesize($files[$x]));
        fclose($file);
        $data = chunk_split(base64_encode($data));
        $message .= "Content-Type: {\"application/octet-stream\"};\n" .

            " name=\"$files[$x]\"\n" ."Content-Disposition: attachment;\n" .

            " filename=\"$files[$x]\"\n" ."Content-Transfer-Encoding: base64\n\n" .

            $data . "\n\n";
        $message .= "--{$mime_boundary}\n";
    }
    $ok = @mail($to, $subject, $message, $headers);
    if ($ok)
    {
        $err[]="mail sent to $to";
        if($path_of_uploaded_file1!="")
            unlink($path_of_uploaded_file1);
        if($path_of_uploaded_file2!="")
            unlink($path_of_uploaded_file2);
    }
    else
    {
        $err[]="mail could not be sent";
    }
}

?>
<form method="POST" name="email_form_with_php" action="" enctype="multipart/form-data">
<input type="text" name="frm" value="1" >

<label for='name'>Name: </label>
<input type="text" name="name" >

<label for='email'>Email: </label>
<input type="text" name="email" >

<label for='message'>Message:</label>
<textarea name="message"></textarea>

<label for='uploaded_file'>Select A File To Upload:</label>
<input type="file" name="logo1">
<input type="file" name="logo2">

<input type="submit" value="Submit" name='submit'>
</form>

1 comment: