Can't send messages between O365 domains

Occasional Contributor

HI, we have two domains in Office 365: Domain1 synced with on premise AD with Azure AD Connect. I can assign licenses to users in O365 console, but for mail server we use on premise Exchange and that works well for years. Also we have new domain in O365 -Domain2 which supposed to be fully cloud. It's MX records pointing to Exchange online.
I can send messages from Domain2 to any domain except Domain1.
All messages from Domain2 to Domain1 don't get to Exchange on premise mailboxes, which we use. They get to Exchange online mailboxes of Domain1 instead.
How can we fix that?

7 Replies
Best Response confirmed by Andy_Bond (Occasional Contributor)

Go to the EAC and configure domain1 as Internal Relay. That way Exchange will no longer try to deliver the messages internally, but instead will look at the MX record and send them on-premises.

Thanks Vasil. 

I already tried to do that, but wasn't able to configure connector. It was saying that I cant use email address hosted on O365 for connector validation.

I thought that it meant I cant use email in domain hosted on O365, but the trick was to use unlicensed user.

I'll set up connector , but probably will need help of my Exchange hosting operator, because I'm not sure about correct exchange server name and other settings.

There's no need for connectors in your scenario, ignore the warning.

Hi Vasil,

Domain 1 is configured as Internal relay for several days, but messages are still going to Exchange Online mailboxes.


I found the workaround for that.

If a has never had mailbox created on O365, I can send messages to him and they get to Exchange on-premise.

But here we'll need to delete O365 mailboxes for all users without deleting O365 users.


It seems like just disabling Exchange online license for a user doesn't work, because we need to wait 30 days for a mailbox to be actually deleted.


Is there some way to delete mailbox immediately?


Yes, you can do a


Disable-Mailbox user -PermanentlyDisable

Thank you for help Vasil,

I was trying to run it, but it was saying that there is on-place hold.

I searched for a holds, retention policies and so on...

But the trick was just to use this parameter   -IgnoreLegalHold

Whereas the account wasn't showing any litigation holds, but.. it worked for me.


One thing you need to know is that licenses should be removed from user to use this cmdlet.



Disable-mailbox <username> -IgnoreLegalHold -PermanentlyDisable