Email Change Confirmation module -- Avoid confirmation email from user_login hook
After looking at the email_confirm code, I came up with a simple solution. A confirmation message isn't sent if an email address is changed to or from empty, so:

  user_save($user, ['mail' =&gt; '']);
  user_save($user, ['mail' =&gt; '&lt;new address&gt;']);


does the trick.