What are some best practices for ensuring the correct transmission of file contents in email attachments with PHP?

When sending email attachments with PHP, it is important to ensure that the file contents are correctly transmitted to the recipient. One common issue is that the file may become corrupted during the transmission process if not handled properly. To avoid this, it is recommended to use base64 encoding to encode the file contents before attaching it to the email.

// Read the file contents and encode it using base64
$file_contents = file_get_contents('file_to_attach.pdf');
$encoded_contents = chunk_split(base64_encode($file_contents));

// Set the appropriate headers for the email attachment
$attachment = "Content-Type: application/pdf; name=\"file_to_attach.pdf\"\r\n";
$attachment .= "Content-Transfer-Encoding: base64\r\n";
$attachment .= "Content-Disposition: attachment; filename=\"file_to_attach.pdf\"\r\n";
$attachment .= "\r\n" . $encoded_contents . "\r\n";

// Send the email with the attachment
$to = 'recipient@example.com';
$subject = 'Email with attachment';
$message = 'Please find the attached file.';
$headers = 'From: sender@example.com' . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: multipart/mixed; boundary="boundary"\r\n';
$headers .= "\r\n--boundary\r\n";
$headers .= $attachment;
$headers .= "--boundary--";

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