How can the MIME-Version and Content-Type headers impact the successful delivery of email attachments in PHP?

The MIME-Version and Content-Type headers are essential for specifying the format of email attachments. Without these headers, email clients may not be able to interpret the attachment correctly, leading to delivery issues. To ensure successful delivery of email attachments in PHP, these headers should be set correctly.

$to = "recipient@example.com";
$subject = "Test email with attachment";
$message = "Please see the attached file.";

$file = "path/to/attachment.pdf";
$filename = "attachment.pdf";
$file_contents = file_get_contents($file);
$attachment = chunk_split(base64_encode($file_contents));

$boundary = md5(uniqid(time()));

$headers = "From: sender@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";

$body = "--".$boundary."\r\n";
$body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
$body .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$body .= $message."\r\n";

$body .= "--".$boundary."\r\n";
$body .= "Content-Type: application/pdf; name=\"".$filename."\"\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n";
$body .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$body .= $attachment."\r\n";

$body .= "--".$boundary."--\r\n";

mail($to, $subject, $body, $headers);