«AddAddress», очевидно, добавит получателя к уже существующим.
Таким образом, первый подписчик добавляется, получает почту, второй подписчик добавляется ON TOP, поэтому во время второго запуска в цикле первый подписчик получает другое письмо (потому что экземпляр $ mail теперь имеет двух получателей) ... затем в В третьей итерации третий подписчик добавляется в ТОП, поэтому во время третьего запуска первый получает третье письмо. Не пытайтесь сделать это с миллионом получателей:)
Я не знаю, как работает ваш класс PhpMailer, но вам нужно очищать получателей после каждого send () или использовать что-то отличное от AddAddress (например, «SetAddress», если в этом классе есть такая вещь) .