Solved

How to add additional SMTP address and make it the primary SMTP address

Posted on 2010-08-22
5
2,462 Views
Last Modified: 2013-12-24
I'm trying to add or in some cases just change the primary SMTP (format= samaccountname@domain.com) for certain mailboxes. I have a file that has these mailboxes. The script that I'm including here works; it adds the SMTP address in the format that I want and makes it the primary SMTP. However, it wipes all the other SMTP addresses; I don't want to wipe anything. I simply want to add/change the primary SMTP while leaving all other SMTP accounts intact.
# source TXT file contains SAMACCOUNTNAMES
$users = Get-Content -Path 'C:\users.txt'

foreach($user in $users){

	Set-QADUser -Identity $user -IncludedProperties proxyAddresses -ObjectAttributes @{proxyAddresses="SMTP:"+$user+"@domain.com"}
	
	}

Open in new window

0
Comment
Question by:bndit
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
5 Comments
 
LVL 12

Expert Comment

by:Rant32
ID: 33497929
Manually setting the SMTP proxy addresses may get your changes overwritten by the Email Address Policy.

You need a higher-priority EAP to set a new Reply address. Set up the recipients and Conditions such that only these users are affected by the EAP.
0
 
LVL 2

Author Comment

by:bndit
ID: 33497950
Thx for the feedback. I'll definitely look into the policy. But for the sake of this answer, I would still like to know how to add the smtp address.
0
 
LVL 8

Expert Comment

by:jimmyray7
ID: 33498232

Open AD users and computers. select the user and view properties.

Select the email addresses tab, click add, select SMTP address, type the new email and hit okay.

Select the new address and click 'set as primary'.

All set!
0
 
LVL 2

Author Comment

by:bndit
ID: 33498327
@jimmyray - obviously you missed the whole Powershell part of my question. Read it again.
0
 
LVL 13

Accepted Solution

by:
soostibi earned 300 total points
ID: 33498907
Try this:
# source TXT file contains SAMACCOUNTNAMES  
$users = Get-Content -Path 'C:\users.txt'  
  
foreach($user in $users){  
        $addresses = (Get-QADUser $user -IncludedProperties proxyaddresses).proxyaddresses | 
            %{if($_ -ilike "SMTP:*"){$_ -replace "SMTP:","smtp:"}else{$_}}
        $addresses = @($addresses) + "SMTP:$user@domain.com"
        Set-QADUser -Identity $user -ObjectAttributes @{
                EmailAddressPolicyEnabled = $false; 
                proxyAddresses=$addresses
              }  
        }

Open in new window

0

Featured Post

Free Webinar: AWS Backup & DR

Join our upcoming webinar with experts from AWS, CloudBerry Lab, and the Town of Edgartown IT to discuss best practices for simplifying online backup management and cutting costs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A quick Powershell script I wrote to find old program installations and check versions of a specific file across the network.
This article shows the steps required to install WordPress on Azure. Web Apps, Mobile Apps, API Apps, or Functions, in Azure all these run in an App Service plan. WordPress is no exception and requires an App Service Plan and Database to install
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
In this Micro Video tutorial you will learn the basics about Database Availability Groups and How to configure one using a live Exchange Server Environment. The video tutorial explains the basics of the Exchange server Database Availability grou…

740 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question