In Exchange 2010/2007, email addresses for your recipients (users, distribuiton groups, public folders, etc.) by an Email Address Policy. In Exchange 2003/2000, this was done by a Recipient Policy. Policies are used to assign standardized email addresses across your organization following the standard naming conventions in your organization – for example: <firstinitial><lastname>@<domain>. For details, see Understanding E-mail Address Policies.
However, users frequently request additional email addresses to be added to their account. These are known as aliases or proxy addresses (the latter because email addresses are stored in the recipient’s proxyAddresses attribute in Active Directory).
Adding additional email addresses using the EMC
You can easily add additional SMTP email addresses using the EMC:
- Expand the Recipients node
- Expand the corresponding node for the recipient type: Mailbox, Distribution Group or Mail Contact
- Select a mailbox, Distribution Group or Contact | Properties | E-mail Addresses tab
- Click Add

Figure 1: You can add an additional email address, known as an alias or a proxy address, from the E-mail Addresses tab in the Exchange Management Shell
Adding additional email addresses using the Shell
When adding new email addresses to a recipient using Exchange shell, remember that EmailAddresses property (or the proxyAddresses attribute in Active Directory) is a multi-valued attribute. You can use the same syntax described in the previous post “HOW TO Update multi-valued attributes in PowerShell” to add one-off email addresses that are not created by an Email AddressPolicy.
$foo = get-mailbox bsuneja
$foo.EmailAddresses += “bsuneja@e14labs.com”,”bharat.suneja@e14labs.com”
$foo | set-mailbox
Adding an additional email address in Exchange 2010
In Exchange 2010, which uses PowerShell v2, you can add an additional email address to a recipient by using a simpler one-line command:
Set-Mailbox bsuneja -EmailAddresses @{Add=’bharat.suneja@e14labs.com’}
Similarly, to remove an e-mail address in Exchange 2010:
Set-Mailbox bsuneja -EmailAddresses @{Remove=’bharat.suneja@e14labs.com’}
Once you’ve added additional email addresses for a recipient, the next common question is: Can the user send and receive email using this new email address? Find out more in HOW TO: Send as alternate email address.
{ 8 comments… read them below or add one }
Hi Bharat,
I wanted this to work with recipients.csv as mentioned in your excellent post “Bulk creation of mailboxes using Exchange Management Shell” (http://www.exchangepedia.com/blog/2006/11/exchange-server-2007-bulk-creation-of.html)
So with this code I can use the same csv file:
Import-CSV CreateRecipients.csv | foreach {
$Temp = Get-Mailbox -identity $_.UPN
$Temp.EmailAddresses.Add($_.Emailadres1)
$Temp.EmailAddresses.Add($_.Emailadres2)
$Temp.EmailAddresses.Add($_.Emailadres3)
Set-Mailbox -Instance $Temp}
How can you add custom address types such as X500 from powershell?
By appending the address type, e.g.:
$foo = get-mailbox jdoe
$foo.emailaddresses += “X400:C=USA;….. “
$foo | set-mailbox
When the second email address is created and then I try to send to that address it gets bounced back saying the recipient does not exist.
How can I create another email address for an existing user or users who already have email addresses?
Thanks
I tried to do this via automation, but have not a clue, how i can pass the @{Add=”} Block as Parameter to the Set-Mailbox command. Do you have any advice for this?
How can i get this address to sort by alphabetical order.
Need help with getting the list to sort by alphabetical order.
How do I set emailaddress parameter from c#.
I have a c# line like that
psh.AddParameter(“EmailAddresses”, “fabriciofernandes@senado.gov.br”);
It works replacing one of my proxy addresses.
I would like to know how do I set ADD or REMOVE from c# to EmailAddress parameter.
{ 1 trackback }