The code below works fine in Google Mail and Yahoo Mail. Attachment filenames work fine but in Hotmail attachments of Japanese filenames are garbled.
// multipart boundary
$message = "--{$mime_boundary}
" . "Content-Type: ".$contentType."; charset=\"iso-8859-2,utf-8\"
" .
"Content-Transfer-Encoding: 7bit
" . $message . "
";
//---- dummy size
$tempsize= 1024 ;
//---- dummy size
$ctrFileName = 0;
// preparing attachments
if(count($attachment) > 0){
foreach ($attachment as $file_data) {
$message .= "--{$mime_boundary}
";
$data = chunk_split(base64_encode($file_data));
$message .= "Content-Type: application/octet-stream; name=\"".$filenameattach[$ctrFileName]."\"
" .
"Content-Description: ".$filenameattach[$ctrFileName]."
" .
"Content-Disposition: attachment;
" . " filename=\"".$filenameattach[$ctrFileName]."\"; size=".$tempsize.";
" .
"Content-Transfer-Encoding: base64
" . $data . "
";
$ctrFileName++;
//$message .= "--{$mime_boundary}--";
}
} else {
$message .= "--{$mime_boundary}--";
}
//$message .= "--{$mime_boundary}--";
//$returnpath = "-f" . $fromaddress;
$success = @mail($to, $subject, $message, $headers);