What he did is upload a mailing list manually, rather than curate one with a service. This manual practice makes it almost impossible to guarantee that valid unsub requests have been honored, among other things. In this particular case, he admits accidentally including bounce out addresses.
That's why good email services make it difficult to upload 100k addresses and call it a day.
Additionally, permission to email someone with app notifications is not permission to send them bulk.