<?php function MailWithAttachment($to, $subject, $message, $senderMail, $senderName, $files){ $from = $senderName." <".$senderMail.">"; $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 attachments if(count($files) > 0){ for($i=0;$i<count($files);$i++){ if(is_file($files[$i])){ $message .= "--{$mime_boundary}\n"; $fp = @fopen($files[$i],"rb"); $data = @fread($fp,filesize($files[$i])); @fclose($fp); $data = chunk_split(base64_encode($data)); $message .= "Content-Type: application/octet-stream; name=\"".basename($files[$i])."\"\n" . "Content-Description: ".basename($files[$i])."\n" . "Content-Disposition: attachment;\n" . " filename=\"".basename($files[$i])."\"; size=".filesize($files[$i]).";\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; } } } $message .= "--{$mime_boundary}--"; $returnpath = "-f" . $senderMail; //send email $mail = @mail($to, $subject, $message, $headers, $returnpath); //function return true, if email sent, otherwise return fasle if($mail){ return TRUE; } else { return FALSE; } } if(!empty($_POST['data'])){ //email variables $to = 'to-email@email.com'; $from = 'from-email@email.com'; $from_name = 'PDF FIle'; //attachment files path array $file = base64_decode($_POST['data']); $subject = 'PHP Email with attachment'; $html_content = '<h1>PHP Email with attachment</h1>'; //call MailWithAttachment() function and pass the required arguments $send_email = MailWithAttachment($to,$subject,$html_content,$from,$from_name,$file); //print message after email sent echo $send_email?"<h1> Mail Sent</h1>":"<h1> Mail not SEND</h1>"; } else { echo "No Data Found"; } ?>
Quick Takeaway: If you want a simple, no-fuss app uninstaller that just works, AppCleaner is your best bet.…
Looking for the right AI memory solution but not sure if Mem0 fits your needs?…
Looking for better remote access options? You're not alone. Many IT teams and businesses are…
Looking for alternatives to Same.new? You're not alone. While Same.new promises to clone websites and…
If you're paying steep bills to Heroku, Vercel, or Netlify and wondering if there's a…
MiniMax-M1 is a new open-weight large language model (456 B parameters, ~46 B active) built with hybrid…