The Question is:
I am converting VMS usernames to a single sign-on format.
I am stuck on modifying the VMS mail profiles of these users. Do you know of a
way to modify the personal profile settings of a users VMS mail profile from
an account other then that user? I need to replace the old username with the
new username and the
n modify their mail profiles so that options like mail forwarding etc. are
carried over to the new mail profile. Since there is not an add or rename
option in mail utility like in SYSUAF I am looking for an alternative way to
accomplish this. Any help i
s appreciated WIZ....
The Answer is :
When a user
has their email forwarded to the address to
and that username then changes their nname to
then the OpenVMS Wizard would expect that having forwarding
for both FIRST and SECOND would be desirable.
Similarly, should not every old username that was not forwarded
now recieve a forward to the new username?
Your best bet is to use the (supported) mail commannds such as:
to gather current state, or to use an image that uses the callable
mail interface, followed by commands (or calls) to reset the state.
To access other profiles, you will end up submitting batch jobs
under the old and new usernames.
Included is a small DCL procedure that shows how you might
interpret the VMSMAIL_PROFILE.DATA file directly -- this is
not a supported nor documented interface, and is subject to
change without notice.
$! VMSMAIL_PROFILE.COM Hein van den Heuvel, May-1996
$! Decodes VMSmail Profile records for selected (P1) or for all users
$ on control_y then goto done
$ x = f$parse("vmsmail_profile","sys$system:.data")
$ open/read/share=write vmsmail 'x
$ codes = "/ Newmail/ Flags/Directory/ Forward/Pers Name//Transport" + -
"/ Editor/ Queue/ / Form"
$ flags = "CopySend/CopyReply/NO_AutoPurge/CopyForw/CC"
$ if p1.eqs.""
$ then read/end=done vmsmail rec
$ else read/end=done/key=&P1 vmsmail rec
$ write sys$output f$extr(0,31,rec)
$ rest = f$extr(31,999,rec)
$ if f$len(rest) .le. 4
$ if p1.nes."" then goto done
$ goto record_loop
$ cod = f$cvui ( 0 , 16, rest )
$ len = f$cvui ( 16, 16, rest )
$ dat = f$extr ( 4, len, rest )
$ rest = f$extr ( 4 + len, 999, rest )
$ if cod.gt.2 then txt = dat
$ if cod.eq.1 then txt = f$string(f$cvui (0,len*8, dat))
$ if cod.eq.2
$ txt = ""
$ len = f$cvui (0,len*8, dat)
$ bit = 0
$ nam = f$elem(bit,"/",flags)
$ if nam.eqs."/" then goto end_flags
$ txt = txt + " " + nam + "=" + f$extr(f$cvsi(bit,1,dat).eq.0,1,"NY")
$ bit = bit + 1
$ goto bit_loop
$ write sys$output f$fao("!2UL !10AS (!2UL) !AS",-
cod, f$elem(cod,"/",codes), len, txt)
$ goto field_loop