Adding an additional SMTP address to a recipient is usually a trivial task in pretty much any version of Exchange. The exception to this is when you're using Exchange Online through Office 365, along with Directory Syncronization (DirSync). When a mailbox for a synchronized user resides in Exchange Online, attempting to add an additional e-mail address to the recipient with Exchange Online tools will result in an error. It will be something fairly descriptive, like "this can't be performed because the object is being synchronized from your on-premises organization".
As you might expect, the user object in the cloud is read-only. So, the solution is to add the additional address to the proxyAddresses attribute of the on-premises Active Directory account, and allow that change to be synced to the cloud. There are a couple of ways to accomplish this, depending on the scenario.
Exchange NOT On-Prem (No Hybrid)
If all of your mailboxes reside in Exchange Online, and you do not have Exchange on-premises, you'll most likely need to modify this manually using Active Directory Users and Computers (ADUC), ADSIEdit, or PowerShell.
Assuming you've got the RSAT tools installed, fire up ADUC, and go to View > and select Advanced Features.
Go to the properties of the account. On the Attributes tab, scroll down to proxyAddresses. Highlight it and click on Edit.
At this point, you can add an additional address to the proxyAddresses collection. Make sure you prefix the address with "smtp:" and that the domain you're attempting to use has been verified in your Office 365 tenant.
You can also use ADSIEdit to perform this task. Simply locate the user in your domain partition, and edit the proxyAddresses collection in similar fashion. The other option is to use PowerShell.
If you have a DC running the Active Directory Gateway Service for PowerShell, and you have the RSAT tools for AD installed on your Windows 7 Client, you can use AD PowerShell (see my previous post for details on this).
Import the AD PowerShell module, and use the Set-ADUser cmdlet to update the proxyAddresses collection:
#Import the AD PowerShell cmdlets
#Store an instance of the user in a variable
$user = Get-ADUser jason -Properties proxyAddresses
#Append the e-mail address to the proxyAddresses collection
$user.proxyAddresses += 'firstname.lastname@example.org'
#Update the object
Set-ADUser -Instance $user
Whether you use the GUI or PowerShell to make this change, DirSync still needs to run before the e-mail address will be usable. You can wait the default 3 hours, or manually force a DirSync.
Exchange On-Prem – Hybrid Deployment
If you have a hybrid deployment and Exchange is on-premises, then you're in luck because this will be much easier. You can use the Exchange Management Console (EMC) to make this change. Fire up EMC and browse to the Recipient Configuration node, and select Mail Contact. Find the contact that needs to be updated and view the properties. You can add the address on the E-mail Addresses tab.
Again, make sure you're looking under Mail Contact, NOT Mailbox in EMC. Cloud mailboxes are represented on-prem as mail-enabled users. Once you're change has been made, you can wait for DirSync, or force it to run and the user will have their new e-mail address.