What are some common pitfalls when trying to include images in PHP emails?

Common pitfalls when including images in PHP emails include using relative paths for image URLs, not setting the correct content type for the email, and not properly encoding the image data. To solve these issues, use absolute paths for image URLs, set the content type to "multipart/related" in the email headers, and encode the image data using base64 before embedding it in the email.

// Absolute path to the image file
$imagePath = '/path/to/image.jpg';

// Get the image data and encode it in base64
$imageData = file_get_contents($imagePath);
$encodedImage = base64_encode($imageData);

// Set the content type to multipart/related
$headers = 'Content-Type: multipart/related; boundary="boundary_text"' . "\r\n";

// Embed the image in the email
$emailBody = "--boundary_text\r\n";
$emailBody .= "Content-Type: image/jpeg\r\n";
$emailBody .= "Content-Transfer-Encoding: base64\r\n";
$emailBody .= "Content-ID: <image1>\r\n";
$emailBody .= "\r\n";
$emailBody .= chunk_split($encodedImage) . "\r\n";
$emailBody .= "--boundary_text--";

// Send the email with the image
mail('recipient@example.com', 'Subject', $emailBody, $headers);