Ada dua masalah di sini:
- Anda tidak menghapus alamat dari surat, jadi ketika Anda menambahkan yang kedua, yang pertama masih ada dan keduanya akan melihat alamat lainnya.
- Anda menggunakan
header
redirect di loop Anda tanpa menghentikan skrip Anda. Ini dapat menyebabkan kode setelah pengalihan berjalan, tetapi tidak ada jaminan berapa banyak dan berapa lama.
Masalah pertama yang dapat Anda selesaikan dengan menghapus penerima di akhir loop:
$mail->ClearAllRecipients();
Adapun masalah kedua, Anda tidak boleh mengarahkan ulang ke mana pun di dalam loop dan ketika Anda mengarahkan ulang setelah semua pesan terkirim, Anda harus keluar dari scipt Anda menggunakan exit;
sehingga tidak ada yang dieksekusi setelah itu.