Click here to Skip to main content
15,669,133 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hi Team

I have two files, one is for application for a loan and second is attaching pdf from the form and sends it as pdf. But the problem now i am getting both email gets sends and dont want that. What i am trying is as soon app.php loads data and be send to db record, the second file should be the one attaching the pdf's file and only one mail should be send not two, second shows text as a header with no attachment, while second shows total size attached but no document on the email.

What I have tried:

PHP
// sending-email-attachment-pdf
<pre><?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 = 'gcobani.mkontwana@agilelimitless.org.za'; 
$from = 'ggcobani@gmail.com'; 
$fromName = 'ACI Finance Pty Ltd'; 
 
$subject = 'Application Loan with ACI Finance Pty Ltd';  
 
// Attachment files 
$received_email_send = array( 
    'received_email_send/bankstatement.pdf', 
    'received_email_send/id.pdf',
    'received_email_send/payslip.pdf'
); 
 
$htmlContent = ' 
    <h3></h3> 
    <h4></h4> 
    <p>Total Attachments: '.count($received_email_send).'</p>'; 
 
// Call function and pass the required arguments 
$sendEmail = multi_attach_mail($to, $subject, $htmlContent, $from, $fromName, $received_email_send); 
 
// Email sending status 
if($sendEmail){ 
    echo 'The email is sent successfully.'; 
}else{ 
    echo 'Email sending failed!'; 
}
?>


// application.php(form to apply using html and this script below)
require_once 'send-email-attachment.php';
    
    $logo = 'assets/img/logo.png';
    $link = 'https://acifinance.co.za/';

	$body .= "<tr><td style='border:none;'>Upload bankstatement  {$bankstatement}</td></tr>";
	$body .= "<tr><td></td></tr>";
	$body .= "<tr><td style='border:none;'>Upload payslip: {$payslip}</td></tr>";
	$body .= "<tr><td></td></tr>";

	$body .= "<tr><td colspan='2' style='border:none;'> </td></tr>";
	// attachment
 $body .= "--" . $separator . $eol;
 $body .= "Content-Type: application/pdf; name=\"" . $fileName . "\"" . $eol;
 $body .= "Content-Transfer-Encoding: base64" . $eol;
 $body .= "Content-Disposition: attachment" . $eol;
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: application/pdf; charset=iso-8859-1';
$body .= $content . $eol;
$body .= "--" . $separator . "--";
$body .= "</tbody></table>";
	
$body .= "</body></html>";
	
    
    $send = mail($to, $subject, $body, $headers); 
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900