A commenter named Justin pointed this out to me in the ShoreTel Active Directory Integration post. When you set up Active Directory Integration, one of the ‘problems’ is that ShoreTel will pull the e-mail address from the “User Principal Name” of your Active Directory System. It grays out the email field in the GUI so you can’t edit it either. Which, if you host your own Exchange Server, isn’t really a problem. Most Windows networks with hosted e-mail will have two e-mail addresses for each user. One is the ‘real e-mail address’ which will look a little weird. Say your domain is “testcorp.local”, your usernames are firstname.lastname and your outside e-mails are firstname.lastname@example.org.
My internal e-mail would be: email@example.com (UserPrincipalName)
My outside e-mail would be: firstname.lastname@example.org (Email Field in AD)
ShoreTel will take the first one, and if you host your own e-mail it’ll just show up in the proper Inbox. The problem today is that a lot of businesses are moving to the cloud for their e-mail. Google Apps, Office360, Zoho and a lot of cloud based e-mail services are replacing expensive self hosted solutions. ShoreTel has helpfully put in an easy, if not obvious fix for this.
This should really be a check box.
Set ShoreTel Director To Pull E-mail Addresses From Active Directory E-Mail Field Instead of Primary User
Step 1 – I’m assuming you’ve already Integrated your Shoretel System with Active Directory (Seriously this is the best thing in the world and my most popular article).
Step 2 – Remote into your ShoreTel Director through Remote Desktop. You should now be able to just type “shoretel” into the box if you followed my directions in the article.
Step 3 – Open “regedit”. If you’re still on Server 2003, click the start menu and type “regedit” and hit enter. On Server 2008 it’s the same process. I assume Server 2012 it’s the same idea.
Step 4 – If you’re running a 32 bit server navigate to the following key: HKEY_LOCAL_MACHINE\SOFTWARE\Shoreline Teleworks\
If you’re running a 64 bit server (and we all should be by now) navigate here: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Shoreline Teleworks
I’m unfortuately running a 32 bit server a version or four behind so this is the best screen shot I’ve got:
Step 3 – Add a DWORD value UseADSMTPFieldForEMail and set it to 1. You do this by right clicking the right hand part of the window, clicking New and selecting “DWORD” and naming it properly (it tends to be case sensitive so you might want to copy/paste). Set the value to 1.
NOTE: You MIGHT already see this value here. I didn’t want to over complicate this step with details, see the notes at the bottom of the post for more information on this step, it can a little more complicated than this depending on your version.
Step 4 – Reboot your ShoreTel Server. I tried several things to get this to work without rebooting. Looks like rebooting the server is the only way to get it to work.
Step 5 – The Director will now pull whatever is in this field in AD:
You may need to go in and Sync everyone again. Though when testing it on my server, it mostly did it without any help. If you’ve changed e-mail addresses a few times, it might pull old information, however.
Notes on Step 3:
So step three has some details I left out due to the complexity of the ShoreTel system and version differences. You may have to make a few decisions based on your version and what you see.
If you see the value mentioned in Step 3 you just need to set it to 1. This probably means you have version 13 of ShoreTel or higher.
The forum post Justin provided me with indicated any value named UseADSMTPFieldForEMail would work. Doesn’t matter if it’s a DWORD or not. The actual value of the DWORD doesn’t matter either for version 12 or lower as far as I can tell, just so long as it exists. I suggest making it a DWORD and setting it to a Hex value of 1 because if you upgrade it will need to be that value type for the higher versions. Leaving it at 0 will disable it when you upgrade.