How can one improve the performance of sending bulk emails with CSV data in PHP to reduce the processing time?

Sending bulk emails with CSV data in PHP can be slow due to the processing time required to read and send each email individually. To improve performance, you can batch process the emails by reading the CSV file in chunks and sending multiple emails in each batch. This reduces the number of times the script has to read the CSV file and send emails, ultimately speeding up the process.

<?php

// Function to send bulk emails with CSV data in batches
function sendBulkEmails($csvFile, $batchSize) {
    $file = fopen($csvFile, 'r');
    $header = fgetcsv($file); // Skip header row

    while (($data = fgetcsv($file)) !== false) {
        // Process data and send emails in batches
        $batch = array();
        for ($i = 0; $i < $batchSize; $i++) {
            if (($data = fgetcsv($file)) !== false) {
                $batch[] = $data;
            } else {
                break;
            }
        }

        // Send emails in batch
        foreach ($batch as $row) {
            // Send email using data from CSV
            // Example: mail($row[0], 'Subject', 'Message');
        }
    }

    fclose($file);
}

// Usage
sendBulkEmails('data.csv', 50); // Send emails in batches of 50

?>