How can base64 encoding be correctly implemented for email attachments in PHP?

When sending email attachments in PHP, it is important to encode the attachment data in base64 to ensure it is correctly interpreted by email clients. This can be done using the base64_encode function in PHP. After encoding the attachment data, it can be included in the email message using the appropriate MIME headers.

// Encode attachment data in base64
$attachment_data = file_get_contents('attachment.pdf');
$encoded_data = base64_encode($attachment_data);

// Set MIME headers for the attachment
$attachment = chunk_split($encoded_data);
$attachment_type = 'application/pdf';
$attachment_name = 'attachment.pdf';

// Include attachment in email message
$message .= "--boundary\r\n";
$message .= "Content-Type: $attachment_type; name=\"$attachment_name\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition: attachment; filename=\"$attachment_name\"\r\n\r\n";
$message .= $attachment."\r\n";
$message .= "--boundary--";

// Send email with attachment
mail($to, $subject, $message, $headers);