| xuguopeng 回复于:2004-10-29 14:03:27 |
| 能 我见过 晚上我找找资料去 可能要配置SMTP等等的东西 |
| qingzhou 回复于:2004-10-29 14:40:41 |
| guopeng不用找了,我手头上有关于这方面的实施例子。
1。先参考这个帖子的配置方法配置你的本地AS/400系统: 《【分享】如何实现直接从AS/400发送信息到指定的邮箱.》 [url]http://www.chinaunix.net/jh/10/372109.html[/url] 2。然后请参照如下实施例子: 【转帖】如何將報表(Spooled File) 使用 e-mail 傳輸至使用者?(工具:ESPLF) 由於 E-mail 的普及,所以常會有 AS/400 報表下載至 PC 並利用 outlook 傳輸,甚為麻煩,所以我將之整合至 AS/400 中,直接利用 AS/400 的 SMTP 功能即可直接傳送報表。SMTP設定方式請參考指令 ESPLF 的原始檔說明。 此程式預設是轉換 繁體中文 "*BG5",若是簡體中文,請將 ESPLFC 中 指令 CPYTOPCD 參數 TRNIGC 值改為 "*SCGS",即可轉換簡體。 File : QCLSRC Member: ESPLFC Type : CLP Usage : CRTCLPGM ESPLFC OS Version: V4R1(含)以後 [code:1:3830743b0b] /**================================================================**/ /* ESPLF ** EMAIL SPOOL FILE */ /* Compile: CRTCLPGM PGM(QGPL/ESPLFC) */ /**================================================================**/ PGM PARM(&FILE &EMAIL &QJOB &SPLNBRD) DCL VAR(&QJOB) TYPE(*CHAR) LEN(26) /* job name */ DCL VAR(&FILE) TYPE(*CHAR) LEN(10) /* spool file + name */ DCL VAR(&SPLNBRD) TYPE(*DEC) LEN(5 0) /* spool + file number */ DCL VAR(&EMAIL) TYPE(*CHAR) LEN(40) /* to email + address */ DCL VAR(&JOB) TYPE(*CHAR) LEN(10) DCL VAR(&USER) TYPE(*CHAR) LEN(10) DCL VAR(&NBR) TYPE(*CHAR) LEN(6) DCL VAR(&SPLNBR) TYPE(*CHAR) LEN(6) /* spool + file number */ DCL VAR(&FNAME) TYPE(*CHAR) LEN(12) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) /**================================================================**/ /* Translate JOB special values */ /**================================================================**/ IF COND(&QJOB = '*') THEN(RTVJOBA JOB(&JOB) + USER(&USER) NBR(&NBR)) ELSE CMD(DO) CHGVAR VAR(&JOB) value(%SST(&QJOB 1 10)) CHGVAR VAR(&USER) value(%SST(&QJOB 11 10)) CHGVAR VAR(&NBR) value(%SST(&QJOB 21 6)) ENDDO /**================================================================**/ /* Translate SPLNBR special values */ /**================================================================**/ IF COND(&SPLNBRD = -1) THEN(CHGVAR VAR(&SPLNBR) + value('*ONLY')) ELSE CMD(IF COND(&SPLNBRD = -2) THEN(CHGVAR + VAR(&SPLNBR) value('*LAST'))) ELSE CMD(CHGVAR VAR(&SPLNBR) value(&SPLNBRD)) /**================================================================**/ /* E-mail */ /**================================================================**/ CHKOBJ OBJ(QTEMP/ESPLF) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(CRTPF FILE(QTEMP/ESPLF) + RCDLEN(198) IGCDTA(*YES) SIZE(*NOMAX)) CPYSPLF FILE(&FILE) TOFILE(QTEMP/ESPLF) + JOB(&NBR/&USER/&JOB) SPLNBR(&SPLNBR) + MBROPT(*REPLACE) CHGVAR VAR(&FNAME) value(%SST(&FILE 1 8) *TCAT '.TXT') CPYTOPCD FROMFILE(QTEMP/ESPLF) TOFLR('temp') + TODOC(&FNAME) REPLACE(*YES) + TRNTBL(*NONE) TRNIGC(*BG5) SNDDST TYPE(*DOC) TOINTNET((&EMAIL)) DSTD(&FILE) + LONGMSG(&FILE) DOC(&FNAME) FLR('temp') + SUBJECT(&FILE *BCAT 'TESTED' ) DLTDLO DLO(&FNAME) FLR('temp') SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Spooled + file' |> &FILE |> 'sent to' |> &EMAIL) RETURN /**================================================================**/ /* Global exception handler */ /**================================================================**/ ERROR: CALL PGM(QMHRSNEM) PARM(' ' X'00000000') MONMSG MSGID(CPF0000) SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) + MSGDTA('Error(s) oclearcase/" target="_blank" >ccured, see previously + listed messages') MSGTYPE(*ESCAPE) ENDPGM[/code:1:3830743b0b] File : QCMDSRC Member: ESPLF Type : CMD Usage : CRTCMD CMD(ESPLFC) PGM(ESPLFC) OS Version: V4R1(含)以後 [code:1:3830743b0b]/* sample: ESPLF FILE(QPJOBLOG) EMAIL([email protected]) */ /* V4R1 or later is required. */ /*You must create a temporary folder using the command CRTFLR FLR(TEMP) */ /* 1.Using CFGTCP, Option 10=Work with TCP/IP host table entries, */ /* verify your mail server name is in the table (add if necessary). */ /* ADD TWN6CPD 145.172.2.11 MAIL SERVER */ /* ADD WTWNAS01 145.172.1.1 LOCAL AS/400 HOST */ /* 2. Ping mail server */ /* 3. CHGSMTPA, verify AUTOSTART(*YES) and MAILROUTER(mail-svr-name) */ /* 4. ADDDIRE USRID(INTERNET SMTPRTE) + */ /* USRD('Internet SMTP gateway') SYSNAME(INTERNET) + */ /* PREFADR(NETUSRID *IBM ATCONTXT) */ /* CHGDSTA SMTPRTE(INTERNET SMTPRTE) */ /* 5. STRTCPSVR *SMTP */ /* If you changed the mail server address, you need restart SMTP*/ /* 6. Test : SNDDST TYPE(*LMSG) TOINTNET(E-mail address) + */ /* DSTD('Test message') LMSG('Test message') */ /* use the Work with Directory Entries (WRKDIRE) command to */ /* enroll you in the system directory. */ /* */ /* preventing large e-mail messages from splitting */ /* CHGPOPA MSGSPLIT(*NOMAX) */ /* *DFT size is 128k */ CMD PROMPT('E-mail Spooled File') PARM KWD(FILE) TYPE(*NAME) MIN(1) PROMPT('Spooled + file') PARM KWD(EMAIL) TYPE(*CHAR) LEN(40) MIN(1) + PROMPT('To e-mail address') PARM KWD(JOB) TYPE(JOB) DFT(*) SNGVAL((*)) + PROMPT('Job name') PARM KWD(SPLNBR) TYPE(*DEC) LEN(4) DFT(*ONLY) + SPCVAL((*ONLY -1) (*LAST -2)) + PROMPT('Spooled file number') JOB: QUAL TYPE(*NAME) DFT(*) QUAL TYPE(*NAME) PROMPT('User') QUAL TYPE(*CHAR) LEN(6) RANGE(000000 999999) + PROMPT('Number')[/code:1:3830743b0b] |
| qingzhou 回复于:2004-10-29 14:42:48 |
| 存档备用,便于以后有相关需求的朋友参考。。。 |
| abcas400 回复于:2004-10-29 15:36:08 |
| 非常谢谢!
我立马就试试看。 祝周未愉快! |
| jamesten 回复于:2004-10-29 15:48:13 |
| 我们公司应该也是直接从AS/400中产生文件,然后转换成EXCEL发到用户的LOUTS邮箱中去的. |
| qingzhou 回复于:2004-10-29 16:41:12 |
| [quote:eeddf3d6d5="jamesten"]我们公司应该也是直接从AS/400中产生文件,然后转换成EXCEL发到用户的LOUTS邮箱中去的.[/quote:eeddf3d6d5]
原理是一样的吗? 如果方便的话就拿出来参考一下,想到有时自己公司业务方面的确需要如此,我也想在本地环境具体测试一下。 |
| hsiang_wang 回复于:2004-10-30 21:09:26 |
| 有谁试过吗? |
| qingzhou 回复于:2004-10-30 21:27:02 |
| [quote:6cfbe8a3dd="hsiang_wang"]有谁试过吗?[/quote:6cfbe8a3dd]
第1步骤我目前在使用,所以没问题的。 第2步骤关键也是要配置好第1步骤作为前提,其实我们就是改第一步骤的SNDDST命令TYPE参数为TYPE(*DOC)类型,然后稍微写些代码就可以实现了。 我想这个PGM是可行的,改天我拿到我本地环境测试一下,正好要在公司的生产系统上实现这个机能。 你有时间自己也测试一下,感受会更深些。。。 ★附加说明: 1.此功能须要 OS/400 V4R1 以后才可使用。 2.若欲传中文,只能以附件方式 SNDDST TYPE(*DOC) 传送; 故须先将信息或 Data 复制到档案夹(Folder); CRTFLR FLR(TEMP) (指令 CPYTOPCD 参数 DBCS code page : *BG5); CPYTOPCD FROMFILE(XXXX) TOFLR(TEMP) FROMMBR(XXX) + TODOC(XXXX.TXT) TRNTBL(*NONE) TRNIGC(*BG5) 3.SNDDST TYPE(*DOC) TOINTNET(E-mail address) + DSTD(‘Test message’) DOC(XXXX.TXT) FLR(TEMP) |
| magket 回复于:2004-10-31 20:16:55 |
| 有没有谁试过自动转EXCEL的。 |