What are common pitfalls when sending files via email using PHP?

Common pitfalls when sending files via email using PHP include not properly handling file uploads, not setting the correct MIME type for the file, and not encoding the file content properly. To solve these issues, ensure that you are using the correct PHP functions to handle file uploads, set the appropriate MIME type for the file being sent, and encode the file content using base64_encode before attaching it to the email.

// Example PHP code snippet to send a file via email with proper handling

$to = "recipient@example.com";
$subject = "File attachment";
$message = "Please find the attached file.";

$file_path = "/path/to/file.pdf";
$file_name = "file.pdf";
$file_content = file_get_contents($file_path);
$file_encoded = base64_encode($file_content);
$file_mime = mime_content_type($file_path);

$attachment = chunk_split($file_encoded);

$headers = "From: sender@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"boundary\"\r\n\r\n";
$headers .= "--boundary\r\n";
$headers .= "Content-Type: application/octet-stream; name=\"" . $file_name . "\"\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"" . $file_name . "\"\r\n\r\n";
$headers .= $attachment . "\r\n";
$headers .= "--boundary--";

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