As per the article, you only send them when the user requests an action, and ask them for their email at that time
> For every transactional email I need to send out - registration, account recovery, and email change verification - the user always initiates this by submitting their email, and it will at that time be available to the backend to perform the needed action.
For ToS changes, it's often enough to display them to the user when they first log in after the change. That's how many mobiel apps handle it already.
The security notification thing could be an issue though. Doesn't seem to be necessary per the GDPA but it's probably a good idea to communicate security breaches.