What are some common pitfalls when trying to send emails with PDF attachments using PHP?

One common pitfall when sending emails with PDF attachments using PHP is not properly setting the content type and encoding for the attachment. To solve this issue, make sure to set the appropriate headers for the attachment before sending the email.

// Set the content type and encoding for the attachment
$mime_boundary = "----=_NextPart_" . md5(uniqid(time()));
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$mime_boundary\"\r\n";

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

// Add the attachment to the email
$message = "--$mime_boundary\r\n";
$message .= "Content-Type: application/pdf; name=\"file.pdf\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition: attachment; filename=\"file.pdf\"\r\n\r\n";
$message .= $attachment . "\r\n";
$message .= "--$mime_boundary--\r\n";

// Send the email with attachment
$to = "recipient@example.com";
$subject = "Email with PDF attachment";
$mail = mail($to, $subject, $message, $headers);

if($mail) {
    echo "Email with PDF attachment sent successfully.";
} else {
    echo "Failed to send email with PDF attachment.";
}