HP OpenVMS Systemsask the wizard |
The Question is:
Dear Sir/madam.
How can I create a mail.dir WHITHOUT loged in
into de user account???
I must to do 20 new account every day. Then, loged
in the new account and do:
$ mail
mail > set mail_dir [.mail]
mail> exit
$ log
I have make a small dcl procedure command, but I have
to run it from the user account or the dcl procedure try
to create the mail_dir in my account.
This is the DCl procedure
$ close/nolog maildirtmp
$ tmpfile = "sys$scratch:setmaildir_''f$getjpi("0","PID")'.tmp"
$ open/write maildirtmp 'tmpfile'
$ write maildirtmp "$ set noon"
$ write maildirtmp "$ MAIL"
$ write maildirtmp "SET MAIL_DIRECTORY ''p1'"
$ write maildirtmp "SHOW ALL" ! for demonstration...
$ write maildirtmp "EXIT"
$ write maildirtmp "$ EXIT"
$ close maildirtmp
$ @'tmpfile'
$ delete 'tmpfile';*
$ exit
Best regards
The Answer is :
Consider placing the target command procedure in the user's LOGIN.COM
procedure, conditionalizing the execution for the first login. The
LOGIN.COM can conditionalize execution of this DCL based on the presence
of the mail subdirectory, or (better) can simply replace itself (or
supercede itself) with a more "benign" version of the LOGIN.COM command
procedure after the initial execution has completed. In any event, it
is typically undesirable that every login invoke this MAIL subdirectory
logic, as the particular MAIL command need only be executed once.
Alternatively, use DCL DECnet task-to-task specifying the new username
and password, or a batch procedure submitted via SUBMIT/USER, to invoke
the command procedure under the context of the target username.
Attached is the full text of a DCL command procedure that the OpenVMS
Wizard recently provided to a Compaq customer support representative
for a very similar problem. (The OpenVMS Wizard would also strongly
recommend acquiring one or more of the available resources on writing
DCL command procedures on OpenVMS. Resources include the OpenVMS User's
Manual and the second edition of the Digital Press Writing Real Programs
in DCL book. Digital Press is an imprint of Butterworth Heinneman,
information is available at http://www.bh.com/.)
If you require additional assistance or consulting services with this
problem, please contact your local Compaq Support representative.
--
$!
$! since I don't want to try this SET MAIL_DIRECTORY at home and
$! mess up my MAIL directory, I have commented the line out.
$!
$! Rather than the SET MAIL_DIRECTORY, I'll use the following
$! rather more benign SET QUEUE and SHOW ALL commands to show
$! that the basic DCL technique works. Because of this, this
$! demonstration DCL procedure is called with one parameter,
$! the alphanumeric queue name for use within the MAIL profile
$! of the current user.
$!
$ close/nolog maildirtmp
$ tmpfile = "sys$scratch:setmaildir_''f$getjpi("0","PID")'.tmp"
$ open/write maildirtmp 'tmpfile'
$ write maildirtmp "$ set noon"
$ write maildirtmp "$ MAIL"
$!$ write maildirtmp "SET MAIL_DIRECTORY ''directory_symbol'"
$ write maildirtmp "SET QUEUE ''p1'" ! alternative command
$ write maildirtmp "SHOW ALL" ! for demonstration...
$ write maildirtmp "EXIT"
$ write maildirtmp "$ EXIT"
$ close maildirtmp
$ @'tmpfile'
$ delete 'tmpfile';*
$ exit
|