Changing email domain for all students

We are moving from one external email to another and need to change the email address stored in Luminis for all our students (14,000). I know we can use xml (pipeline and IMS) but that is slow and requires too much down time. Has anyone done this? Is it smart to edit the Lumnis LDAP directly?

--Scott Hayes

College of William and Mary

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

which one?

Which address do you want to change?  One of the addresses that you see when you do "cptool get user"?  Or the return address in the e-mail client?  Or the address that calendar reminders get sent to? Or the address in the group tools table?

:)

Todd

All addresses

We want to change all address for the students, so that any email sent by Luminis goes to the new address.

 

--Scott

Testing

Then you're in for some testing!  Grab a sample account, change some settings, then go through and try all of the things that could generate e-mail from Luminis.  Then go change some more settings.  Eventually you'lll probably get them all.

Activities you could try:
- send an announcement to that user with e-mail delivery
- add them as a member to a group which requires that you type into that "provide an explanation" box so they get e-mail from that
- invite them to an event on the calendar, which should send them an e-mail invitation
- set up a new event on their own calendar, and have that event send a calendar reminder
- use a second user's Luminis account and mail client to search for them in the local directory, and send them e-mail to whatever address is found by the search

Depending on the settings you need to change in the end, you can either use "cptool process file", or an XML import, or direct LDAP modification.  We use all three for various reasons at different times, none of them presents a particular problem.  Don't be scared of modifying user attributes directly in LDAP if that's really the best way to get things done.

And back up your data first. :)

Todd

What to update

We've changed our xml that specifies the @wm.edu address but we see the change in the Default account, but the Luminis server side still has the email address as @wm.edu and the auto foward address as @wm.edu.

 

I think the key is the Auto Forward Address. I need to change that, but do not know where.

 

--Scott

cptool

Did you do "cptool get user <userid> -a" to see all of the values available for you to set?

pdsEmailAccount

It seems like you could update LDAP directly as long as you know what the new string will be for the pdsEmailAccount attribute, which in my case looks something like this:

/v8AVwBTAFUAIABFAG0AYQBpAGw=,2,email.school.edu,emailID@school.edu,emailID,12,0

You could probably create an xml file for a single account containing the new email block.  Then use the cptool import process to update this one record. 

<?xml version=”1.0”?>
<!DOCTYPE PIPELINE-USERS SYSTEM “pipeline-user-2.dtd”>
<PIPELINE-USERS>
<EMAIL name=”blee”>
<PROPERTY name=”AccountName”>System</PROPERTY>
<PROPERTY name=”AccountType”>IMAP</PROPERTY>
<PROPERTY name=”MailServer”>system.com</PROPERTY>
<PROPERTY name=”EmailAddress”>blee@system.com</PROPERTY>
<PROPERTY name=”UserID”>RobertLee</PROPERTY>
<PROPERTY name=”ClearText.Credential”>leel</PROPERTY>
<PROPERTY name=”LeaveOnServer”>true</PROPERTY>
<PROPERTY name=”IsDefault”>true</PROPERTY>
<PROPERTY name=”IsStockFolderAccount”>true</PROPERTY>
<PROPERTY name=”IsSystemAccount”>true</PROPERTY>
</EMAIL>
</PIPELINE-USERS>

You could then use a LDAP brower or cptool get user command to see the new format of the modified email attributes.  Then use ldapmodify to apply the same change to the remaining accounts.

ldapmodify

 If you do use ldapmodify, don't forget that the sql database has email_address in the gt_user table.  I modify the ldap directly often, mostly to set distance learning system URLs.  I use a bash script. 

If you want an example script, I can post it.  Basically loops around a text file of accounts, echo's out ldif lines to a file, and then runs ldapmodify using that file.  

 

please post

I'm interested in seeing the distance learning script.  Thanks.

ldapmodify script

I modified my DL script to be more useful to the email change request in the OP

*** I didn't test this, so take care and test with 1 account to start on a test system. ***

Only includes two email fields, so you'd need to add more if desired.

 

 

Takes a file in the form:

uid,newEmailAddress

uid2,newEmailAddress2

etc...

assuming a 15 length uid, parse out the fields in the csv file and loop around it. 

 

while read line; do

        uid=${line:0:14}

length=`echo ${#line}`

mailLength=$(($length-15))

        newMail=${line:16:mailLength}

 

                     echo "dn: cn="$uid",ou=People,o=pcc.edu,o=cp" >> someldif.ldif

                     echo "changetype: modify" >> someldif.ldif

                     echo "replace: mail" >> someldif.ldif

                     echo "mail: $newMail" >> someldif.ldif

                     echo "" >> someldif.ldif

                                                                

                     echo "dn: cn="$uid",ou=People,o=pcc.edu,o=cp" >> someldif.ldif

                     echo "changetype: modify" >> someldif.ldif

                     echo "replace: pdsEmailDefaultAddress" >> someldif.ldif

                     echo "pdsEmailDefaultAddress: $newMail" >> someldif.ldif

                     echo "" >> someldif.ldif

 

done < listofaccounts.txt

        

        ldapmodify -c -D "ldapacct" -w ldappass -f someldif.ldif

 

 

Syndicate content