PHPmailer does not work with NTLM authentication and insists on using mhash() which is deprecated – so you need to edit the file in /extras called ntlm_sasl_client.php
Find the code that checks if mhash() is installed and replace the 3 mhashes with hash instead:
|| !function_exists($function = "mhash")
) {
$extensions = array(
"mcrypt_encrypt" => "mcrypt",
"mhash" => "mhash"
Then replace these three lines:
$unicode = $this->ASCIIToUnicode($password);
$md4 = mhash(MHASH_MD4, $unicode);
$padded = $md4 . str_repeat(chr(0), 21 - strlen($md4));
With the following:
$unicode = iconv('UTF-8', 'UTF-16LE', $password);
$padded = pack('H*', hash('md4', $unicode));
And the library now works. When sending you will need to define a couple of extra bits:
$mail->SMTPSecure = 'ntlm';
$mail->Realm = "yourdomain.com";
$mail->Workstation = "WORKSTATION1";
…obviously replacing the domain and workstation name with your own values.