HP OpenVMS Systems

ask the wizard
Content starts here

Access to user profiles in VMSMAIL_PROFILE?

» close window

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
$   endif
$   write sys$output f$extr(0,31,rec)
$   rest = f$extr(31,999,rec)
$   if f$len(rest) .le. 4
$     then
$	if p1.nes."" then goto done
$	goto record_loop
$   endif
$   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
$     then
$	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
$    endif
$    write sys$output f$fao("!2UL !10AS (!2UL) !AS",-
		cod, f$elem(cod,"/",codes), len, txt)
$    goto field_loop
$close vmsmail

answer written or last revised on ( 7-APR-2000 )

» close window