0

I have got some piece of code to send multiple attachments through mail function in php.
The mail with attachment will be sent if there is only one attachment.
But mail sending fails if add two or more files in the array.
This is my code

// array with filenames to be sent as attachment
//$files = array("upload/Tulip.jpg");
$files = array("upload/Tulip.jpg","upload/Tulips.jpg","upload/Tulips1.jpg");

// email fields: to, from, subject, and so on
    $to = "mail@mail.com";
    $from = "mail@mail.com"; 
$subject ="My subject"; 
$message = "My message";
$headers = "From: $from";

// boundary 
$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

// headers for attachment 
$headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; 

// multipart 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";

// preparing attachments
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) { 
    echo "<p>mail sent to $to!</p>"; 
} else { 
    echo "<p>mail could not be sent!</p>"; 
} 

The mail will be sent if $files array have only one file..
Please someone help me in solving this.
Please Remember , the above code works fine if we have only one image path in $files array.

Thanks in advance

2
Contributors
2
Replies
16
Views
3 Years
Discussion Span
Last Post by Phanindra Reddy
0

I got solution to this issue..
The thing is ,Email will be sent with all attachments if they are small sized.
Due to some restriction in upload size I got the error.

The code is perfect for sending attachments to email through php mail function.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.