Question

  • Creator
    Topic
  • #4045597
    Avatar photo

    Sending email with multiple attachment is not working using php mail

    Locked

    by Gcobani Mkontwana ·

    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 topic was modified 2 years ago by Avatar photokees_b.

All Answers

Viewing 3 reply threads