I'm migrating our emails from one hosted exchange provider to another. How can I create addresses that simply forward to another (external) address but don't have a mailbox of their own?
Asked
Active
Viewed 1.5k times
2 Answers
4
If you want emails to an O365 organization forwarded to another, use a MailContact as outlined in Step 2 here: http://community.office365.com/en-us/wikis/exchange/how-to-forward-email-in-office-365.aspx
The gist of it:
$recAddress = "recipient@company.com"
$forwardToAddress = "recipient@newcompany.com"
$recipientName = "John The Moved User"
New-MailContact $recipientName –ExternalEmailAddress $forwardToAddress
$mailContact = Get-MailContact MailContactName
$mailContact.EmailAddresses.Add($recAddress)
Get-MailContact MailContactName | Set-MailContact -EmailAddresses $mailContact.EmailAddresses
Where $recAddress
is the recipient specified in the email, $forwardToAddress
is the address the email is forwarded to, and $recipientName
is the name to use for the contact object.

Mathias R. Jessen
- 25,161
- 4
- 63
- 95
-
Thanks! Looks like a Mail Contact is better suited than a Shared mailbox, which was my first solution. – Rory May 25 '13 at 21:01
-
Yeah, there is more than one solution to this, but for a temporary solution during migration I would take a list of migrated users in a CSV format or the likes, and script my way out of it with Mail Contacts :-) A MailContact is just a single AD object, whereas mailboxes take up storage and more processing time – Mathias R. Jessen May 25 '13 at 21:04
-
1Great, I've used your solution. I do find the `$x.EmailAddresses.Add(y)` syntax quite deceptive since it's only modifying a temporary collection, so I quite like the alternate `Get-Mailbox -Identity MailContactName | Set-Mailbox -EmailAddresses @{Add="an.address@example.com", "another.address@example.com"}` – Rory May 25 '13 at 21:16
-
1And for anyone who hasn't previously set up powershell to connect to exchange, here's the instructions: http://help.outlook.com/en-us/140/cc952755.aspx – Rory May 25 '13 at 21:18
-
Great, I've used your solution. I do find the $x.EmailAddresses.Add(y) syntax quite deceptive since it's only modifying a temporary collection, so I quite like the alternate Get-MailContact -Identity $recipientName | Set-MailContact -EmailAddresses @{Add="an.address@example.com", "another.address@example.com"} – Rory Jun 11 '13 at 14:27
-1
What you want is called an alias email. http://www.mamut.com/uk/support/search/faq.asp?lcid=2057&id=02024937

Yannovitch
- 309
- 1
- 8
-
1Whilst this may theoretically answer the question, [it would be preferable](http://meta.stackexchange.com/q/8259) to include the essential parts of the answer here, and provide the link for reference. – Scott Pack May 25 '13 at 21:32
-
I can see this option only as adding new addresses to an old mailbox in the system. – Antti Rytsölä Jul 24 '15 at 06:37
-
Now that the link is dead, the answer is worthless. Should have copied the text while it was available. – HackSlash Feb 09 '21 at 20:44