Here is the code for several attachments in the mail function.
I created a function for multiple nesting. and check it out.
/* * Function Name: sentMail * Scope : Sent Mail Function with CC , BCC and Attachment files.. * Input : Recipient Name => $recipientName // (Required) * Recipient MailId(Many) => $recipientMailId // (Required & Array Format) * Subject Content => $subjectContent // (Required) * Message Content => $messageContent // (Required) * Sender MailId => $senderMailId // (Required) * Sender Name(Many) => $senderName // (Required) * Recipient CC MailId => $recipientCCMailId //(Optional & Array Format) * Recipient BCC MailId => $recipientBCCMailId //(Optional & Array Format) * Attachment Files => $attachmentFiles //(Optional & Array Format) * Output : Sent mail to the Recipient. */ public function sentMail($recipientName,$recipientMailId,$subjectContent,$messageContent,$senderName,$senderMailId,$recipientCCMailId,$recipientBCCMailId,$attachmentFiles) { try { /*Get the Mulitple Recipient CC MailId*/ if(isset($recipientCCMailId)){ if(count($recipientCCMailId)>1){ $recipientCCMailId = implode(',',$recipientCCMailId); } else{ $recipientCCMailId = $recipientCCMailId[0]; } } /*Get the Mulitple Recipient BCC MailId*/ if(isset($recipientBCCMailId)){ if(count($recipientBCCMailId)>1){ $recipientBCCMailId = implode(',',$recipientBCCMailId); } else{ $recipientBCCMailId = $recipientBCCMailId[0]; } } /*** Mail Contents Starts ***/ $subj = $subjectContent; $msg =""; /*Get the Mulitple Recipient BCC MailId*/ if(count($recipientMailId)>1){ $recipientMailId = implode(',',$recipientMailId); $msg .="Dear, <b>All</b>\r <br>"; } else{ $recipientMailId = $recipientMailId[0]; $msg .="Dear, <b>".ucwords($user_name)."</b> \r <br>"; } $msg .=$messageContent."\r <br><br>"; $msg .="Thank you"."\r\n\n <br>"; $msg .=$senderName."\r\n\n <br><br>"; $headers =""; /** Get the Mulitple Attachment files and Attachment Process Starts **/ if(isset($attachmentFiles)){ $headers .= "From: ".$senderMailId."\r\n"; $headers .= "Cc: ".$recipientCCMailId."\r\n"; $headers .= "Bcc: ".$recipientBCCMailId."\r\n"; // 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 $msg .= "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $msg . "\n\n"; // preparing attachments for($i=0;$i<count($attachmentFiles);$i++) { if(is_file($attachmentFiles[$i])) { $msg .= "--{$mime_boundary}\n"; $fp = @fopen($attachmentFiles[$i],"rb"); $data = @fread($fp,filesize($attachmentFiles[$i])); @fclose($fp); $data = chunk_split(base64_encode($data)); $msg .= "Content-Type: application/octet-stream; name=\"".basename($attachmentFiles[$i])."\"\n" . "Content-Description: ".basename($attachmentFiles[$i])."\n" . "Content-Disposition: attachment;\n" . " filename=\"".basename($attachmentFiles[$i])."\"; size=".filesize($attachmentFiles[$i]).";\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; } } $msg .= "--{$mime_boundary}--"; } /** Attachment Process Ends **/ else{ $headers .= "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=utf-8" . "\r\n"; //$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; $headers .= "From: ".$senderMailId."\r\n"; $headers .= "Cc: ".$recipientCCMailId."\r\n"; $headers .= "Bcc: ".$recipientBCCMailId."\r\n"; } /*** Mail Contents Ends ***/ $sent_mail=mail($recipientMailId,$subj,$msg,$headers); if($sent_mail) { return true; } else { return false; } } catch (Exception $e) { getConnection('close'); echo "Caught Exception:",$e->getMessage(); } }
MKV
source share