× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Actually, the MSF mail messages do not live in the IFS, they are a hold over from the old Office Vision/400 and/or Document Library Object days. But if you poke around enough you can find them. Here's some snippets and tips which should get you headed in the right direction.

As always, backup is your friend. You can do a SAVDLO DLO(*MAIL) DEV(*SAVF) to grab a copy of things before you start deleting them.

They were based on the IBM document below which is no longer available online, or at least I wasn't able to find it anymore.

__________________________________________________________________
IBM Software Technical Document
__________________________________________________________________
Document Number: 15451115
Functional Area: AS/400 Mail
Subfunctional Area: OfficeVision - Mail
Sub-Subfunctional Area: General
OS/400 Release: ALL
Product: Operating System/400 - OS/400 COMM BASE (5716SS1CM)
Product Release: N/A
__________________________________________________________________
Document Title
Example (CL) - Cleanup SNADS Mail Distributions
__________________________________________________________________

=====
Start by using DSPDIRE to outfile to get a list of all users who could be sending MSF mail
=====
DSPDIRE OUTPUT(*OUTFILE) OUTFILE(&OUTLIB/&OUTFILE)
OUTMBR(*FIRST *REPLACE) DETAIL(*FULL) +
OUTFILFMT(*TYPE3) OUTDTA(*ALL)
=====
Even if you use an *ALLOBJ userid, or even QSECOFR, you may not be able to access the mail for the users listed above. I ended up having to loop through the above file and use the Grant User Permission (GRTUSRPMN) command to myself.
=====
DCLF FILE(QSYS/QAOSDIRX) RCDFMT(OSDIRX)

OVRDBF FILE(QAOSDIRX) TOFILE(&OUTLIB/&OUTFILE)

LOOP: RCVF RCDFMT(OSDIRX)
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(DONE))
IF COND(&DXUSRP *NE ' ') THEN(+
DO)
GRTUSRPMN TOUSER(BDOLINAR) FORUSER(&DXUSRP)
ENDDO
DONE: ENDPGM
=====
And now that you have the ability to look at all the MSF mail, there are two "piles" of mail, incoming and outgoing. Use the Query Distribution (QRYDST) command to send each of them to their own outfile by looping through the DSPDIRE list of users. From what I remember, the *IN and *OUT files have different layouts and use different parameters on the QRYDST command.
=====
LOOP: RCVF RCDFMT(OSDIRX)
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(DONE))
IF COND(&DXUSRP *NE ' ') THEN(DO)
QRYDST OPTION(*IN) USRID(&DXDEN &DXDGN) +
OUTFILE(&OUTLIB/QRYDSTIN) OUTMBR(*FIRST +
*ADD) STATUS(*ALL)

MONMSG MSGID(CPF0000)

ENDDO
GOTO CMDLBL(LOOP)
DONE: ENDPGM
=====
LOOP: RCVF RCDFMT(OSDIRX)
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(DONE))
IF COND(&DXUSRP *NE ' ') THEN(+
DO)
QRYDST OPTION(*OUT) USRID(&DXDEN &DXDGN) +
OUTFILE(&OUTLIB/QRYDSTOUT) OUTMBR(*FIRST +
*ADD)

MONMSG MSGID(CPF0000)

ENDDO
GOTO LOOP
DONE: ENDPGM
=====
The "Distribution ID" fields, LINDID and OUTDID, along with the Recipient/Sender Identifier, LINRUI and OUTSUI, and Recipient/Sender Address LINRUA and OUTSUA fields, is the information needed from the two QRYDST files to actually identify an MSF mail message so you can send them to their own output files.

While in theory you should be able to send both incoming and outgoing distributions to an output file, I was only able to do it for the incoming. All the outgoing ones were *ERR type messages, so I just deleted them to get them out of the system.
=====
DCLF FILE(QSYS/QAOSILIN) RCDFMT(OSLIN)

/* GLOBAL MONMSG */
MONMSG MSGID(CPF9098 CPF900C)

OVRDBF FILE(QAOSILIN) TOFILE(BCDLIBOV4/QRYDSTIN)

LOOP: RCVF RCDFMT(OSLIN)
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(DONE))
RCVDST DSTID(&LINDID) USRID(&LINRUI &LINRUA) +
OUTFILE(&OUTLIB/RCVDSTIN) ACKRCV(*YES) +
DSTIDEXN(*NONE) KEEP(*YES)

GOTO CMDLBL(LOOP)

DONE: ENDPGM
=====
=====
/* WARNING - THIS CODE DELETES THE OUTGOING DISTRIBUTIONS WITHOUT SAVING THEM */
DCLF FILE(QSYS/QAOSILOT) RCDFMT(OSLOUT)
OVRDBF FILE(QAOSILOT) TOFILE(BCDLIBOV4/QRYDSTOUT)

LOOP: RCVF RCDFMT(OSLOUT)
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(DONE))

DLTDST DSTID(&OUTDID) OPTION(*OUT) USRID(&OUTSUI +
&OUTSUA) DSTIDEXN(&OUTDEX)
MONMSG MSGID(CPD9022 CPF900A) EXEC(DO)
/* CPD9022 DISTRIBUTION ISSPRD-BSYPGMR-0039-00 CANNOT BE F
DLTDST DSTID(&OUTDID) OPTION(*ERR) USRID(&OUTSUI +
&OUTSUA) DSTIDEXN(&OUTDEX)
MONMSG MSGID(CPF900A)
ENDDO
=====
Brian Dolinar.




"James Lampert" <jamesl@xxxxxxxxxxxxxxxxx> wrote in message news:mailman.237.1210090064.12545.midrange-l@xxxxxxxxxxxxxxx
Adam Glauser wrote:
I'd really like to be able to confirm what the problem messages are
before clearing them. Have you by chance got a method to do this?

I'm no MSF expert, but I should think that ought to be a matter of
finding out where the messages are being stored in the IFS, and looking
at them with DSPF. It probably wouldn't tell you *everything,* but I
should think it would tell you enough that you could infer the rest.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.