Sending email with multiple attachment is not working using php mail - TechRepublic
Question
March 7, 2023 at 01:40 PM
Gcobani Mkontwana

Sending email with multiple attachment is not working using php mail

by Gcobani Mkontwana . Updated 3 years, 1 month ago

Hi Team

I really need some help, i have code that send multiple attachment its using php mail function. The email does gets send but the problem it only shows total size attachment. What could be the problem and need help

// code
<?php
function multi_attach_mail($to, $subject, $message, $senderEmail, $senderName, $received_email_send = array()){

// Sender info
$from = $senderName.” <“.$senderEmail.”>”;
$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 = “–{$mime_boundary}\n” . “Content-Type: text/html; charset=\”UTF-8\”\n” .
“Content-Transfer-Encoding: 7bit\n\n” . $message . “\n\n”;

// Preparing attachment
if(!empty($received_email_send)){
for($i=0;$i<count($received_email_send);$i++){
if(is_file($received_email_send[$i])){
$file_name = basename($received_email_send[$i]);
$file_size = filesize($received_email_send[$i]);

$message .= “–{$mime_boundary}\n”;
$fp = @fopen($received_email_send[$i], “rb”);
$data = @fread($fp, $file_size);
@fclose($fp);
$data = chunk_split(base64_encode($data));
$message .= “Content-Type: application/octet-stream; name=\””.$file_name.”\”\n” .
“Content-Description: “.$file_name.”\n” .
“Content-Disposition: attachment;\n” . ” filename=\””.$file_name.”\”; size=”.$file_size.”;\n” .
“Content-Transfer-Encoding: base64\n\n” . $data . “\n\n”;
}
}
}

$message .= “–{$mime_boundary}–“;
$returnpath = “-f” . $senderEmail;

// Send email
$mail = mail($to, $subject, $message, $headers, $returnpath);

// Return true if email sent, otherwise return false
if($mail){
return true;
}else{
return false;
}
}

// Email configuration
$to = ‘xxx@yyy.org.za’;
$from = ‘zzz@gmail.com’;
$fromName = “abcde”;

This discussion is locked

All Comments