During our recent Google Apps to Office 365 migration we realized after the migration that there was a key feature that was missing in Office 365: the ability to send from email aliases from a single account (without having a shared mailbox)

In Google Apps this is a very simple feature and easily configured in the settings page.

In Office 365 that is not the case. Receiving from multiple aliases is easy by just added that email to the SMTP aliases for a user account.

The problem occurs when you want to send from a single account, but as another user. We use aliases heavily, so we don’t want to pay for the roughly 15 accounts that we send from (but distribute to multiple different users).

Googling (or Binging, ahem) led to have a ton of responses, but none that wouldn’t yield the recipient seeing alias@domain.com on behalf of realaccount@otherdomain.com (common behavior for those Exchange admins out there).

The other disclaimer here is that this is not an officially supported method by any Microsoft documentation that I found, rather some applied Exchange on-premise knowledge that came in handy.

Unfortunately, this also only works in the actual Outlook client, not in the Office 365 OWA mail client.

This solution requires you to fire up remote Powershell to connect to Exchange Online (by this point your execution policy should already be allowing connectivity remotely)

To create your Exchange Online Remote Powershell session do the following:

$LiveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session

Give it a minute to parse and load all required commandlets. while you are waiting you can complete the steps below

Now fire up the Exchange Online web page.

For each email address you want to send as:

  1. Ensure that your receiving account does not have an SMTP alias in the email addresses defined that you would like to send as
  2. Go to the recipients tab
  3. To to the contact sub-tab
  4. Create an external contact with the email address you would like to send as. Please note that the Display Name cannot be the same as any other account (it will let you add it, but in the rule creation for routing it won’t let you proceed)
  5. Go to the mail flow tab
  6. Create a new blank rule
  7. Name the rule as you would like
  8. Select: Apply this rule if the recipient is… and select the external contact you created
  9. Select: Redirect the message to… and select your recipient account (what you login as)
  10. Leave all other options as default and select save
  11. Wait around 10 minutes to ensure the rule has propagated across all nodes
  12. Now open your loaded powershell prompt back up
  13. Run the following command: Add-RecipientPermission alias@anotherdomain.com -AccessRights SendAs -Trustee loginaccount@domain.com
  14. Wait around 10 minutes to ensure the rule has propagated across all nodes
  15. Open up Microsoft Outlook
  16. Create a new message
  17. Click the from button, and select Other E-mail addresses…
  18. Click the from button in the dialog that opens and select the external contact you created in step 4

Rinse and repeat this process for each alias you would like to send as.

It isn’t pretty, but it gets the job done!