T.R | Title | User | Personal Name | Date | Lines |
---|
2576.1 | A horrible hack.... | IOSG::PYE | Graham - ALL-IN-1 Sorcerer's Apprentice | Fri Apr 16 1993 11:20 | 12 |
| As you know, the REPLYHIST.DAT file is used to record addresses who
have had an auto-reply sent to them.
As a result of researching various bugs in this area, it appears that
the image only uses SYSPRV to write to this file. So if you create an
empty REPLYHIST.DAT file in the user's account, but don't give it any
SYSTEM Write access, then the image can't record who it's already
replied to....
Or you could use ALL-IN-1 Personal Assistant.
Graham
|
2576.2 | \\ ? | ANGLIN::HARRIS | user vicious | Fri Apr 16 1993 17:33 | 27 |
| thanks graham!
i think this will work. but (of course) i have a couple of questions.
on the form EMARPY there is an XOP (POSTEMARPY) that resets the
protections.
since it would only be the 1 account that needs the autoreply ro always
be sent, i'd like to put an .IF statement in the POSTEMARPY that says
if the user is XXX, then set the protections this new way (no W), else
set the protections the old way (with W).
here is the ND from the POSTEMARPY. i know it needs some double \\
somewhere, but i'm not sure where.
Thanks - ann
;;~~POSTEMARPY~~;;
.if oa$user eqs "HARRIS, ANN" then
get #curdoc="oa$curmes"\
get oa$dcl="$set prot=(S:r,O:R,W:R) replyhist.dat\
else
GET #CURDOC="OA$CURMES"\
GET OA$DCL="$SET PROTECTION=W:RWE REPLYHIST.DAT"\
GET #A= PROFIL.MAIL_REPLY[OA$USER]\
GET OA$FUNCTION='GET OA$DCL="SET PROTECTION=W:RE ' #A '"'
|
2576.3 | | OASS::VALDEZ_C | A smile is the same in any language | Fri Apr 16 1993 23:24 | 20 |
| Hi Ann,
Use double backslashes (\\) when you want multiple statements to occur within
the .IF (if in named data). You don't need any backslashes before an ELSE.
So, try something like
.if oa$user eqs "HARRIS, ANN" then
get #curdoc="oa$curmes"\\
get oa$dcl="$set prot=(S:r,O:R,W:R) replyhist.dat"
else
GET #CURDOC="OA$CURMES"\\
GET OA$DCL="$SET PROTECTION=W:RWE REPLYHIST.DAT"\\
GET #A= PROFIL.MAIL_REPLY[OA$USER]\\
GET OA$DCL="SET PROTECTION=W:RE " #A
Also, just to be safe, start the line that begins with the ELSE with an extra
space.
Cindy
|
2576.4 | You must have already customised this... | IOSG::PYE | Graham - ALL-IN-1 Sorcerer's Apprentice | Mon Apr 19 1993 12:17 | 12 |
| Fortunately I can rely on Cindy to sort out the backslashes, 'cos I'm
not very good at that sort of thing!
I was just thinking that you'd do this as a one-off hack from DCL on
the required account.
Actually, if you already have some code to set the protections, then I
think it must be a customisation, since it's not in the standard
product as far as I can see. It's something I hope we can add in the
future, since I consider this feature to be a bug!!
Graham
|
2576.5 | almost there! | ANGLIN::HARRIS | user vicious | Wed Apr 21 1993 17:10 | 39 |
| thanks for the \\ help cindy!
grahame - the POSTEMARPY was added per a DSN article by the customer a
few years ago.
in looking into this somemore... i found that the REPLYHIST.DAT file is
deleted and recreated each time the AR in selected by the user. when
the REPLYHIST.DAT is created its given a prot of S:RWED, O:RWED. in
looking at a trace, i don't see this being done. my code to change the
protections is shown in the ND, but not being executed.
Where does the REPLYHIST.DAT get it protections when being created?
Thanks - Ann
part of the trace follows:
![IO] Deleting file REPLYHIST.DAT
![FLOW] Form RPLYHS opening, Library:
APPL$DISK:[ALLIN1.LIB_ENGLISH]OAFORM.FLB
! ;
![IO] Opening RPLYHS, File: OA$REPLYFILE, Class: DATA, Mode: CREATE
![IO] Closing RPLYHS, File: OA$REPLYFILE
![FUNC] Function: CLOSE_PRIOR, Cmd line:
![A1LOG] Entry: %OA-I-LOGFUN, Function: CLOSE_PRIOR
![FORM] Form DOCSEL closing
![FUNC] Function: XOP, Cmd line: "~~POSTEMARPY~~"
![A1LOG] Entry: %OA-I-LOGFUN, Function: XOP
"~~POSTEMARPY~~"
![SYMBOL] Symbol: "~~POSTEMARPY~~", Value: ~~POSTEMARPY~~
![FUNC] Function: OA$SCP_DISPATCH, Cmd line: .IF OA$USER EQS "ANN,
TEST" THEN
! GET #CURDOC="OA$CURMES"\ GET OA$DCL="$SET
PROTECTION=(S:R,O:,W:R
! ) REPLYHIST.DAT"\ ELSE GET #CURDOC="OA$CURMES"\GET
OA$DCL="$SET
! PROTECTION=W:RWE REPLYHIST.DAT"\GET
#A=PROFIL.MAIL_REPLY[OA$USER
! ]\GET OA$FUNCTION='GET OA$DCL="SET PROTECTION=W:RE ' #A
'"'
|
2576.6 | In the BLISS.... | IOSG::PYE | Graham - ALL-IN-1 Sorcerer's Apprentice | Wed Apr 21 1993 19:17 | 14 |
| There's no entry form mapping the reply history file (although it's
trivial to create one) the internal data structures (FNT and FDT) that
are built from an entry form are hardwired into the mail code. All of
this is a long way of saying that the creation (and almost certainly,
but I haven't checked) protection of the .DAT file is done inside the
BLISS module that implements the MAIL AUTO_REPLY function.
The delete and recreate each time is just a cheap way of getting an
empty file.
You'll have to add extra ND to set the protections after the new
version is created.
Graham
|
2576.7 | so close... | ANGLIN::HARRIS | user vicious | Wed Apr 21 1993 20:59 | 14 |
| thanks for the BLISS input grahame. i thought that's what was the
cause.
well, after changing the protections around, i'm finding that if
REPLYHIST.DAT does NOT have W:RWE (at least the W part), the sender of
a message to an account with an AUTOREPLY selected gets an error when
trying to open the receiver's REPLYHIST.DAT
someone else has suggested that i create a private FLB with my own
autoreply form and scripts. i think this might be the way to go - now
if i only had the time....
thanks for all the help - Ann
|