使用COBOL编写在IBM i上发送电子邮件的程序
作者:佚名
上传时间:2023-05-26
运行软件:COBOL
软件版本:IBM i(OS/400)V7R4
版权申诉
本示例展示了如何使用COBOL编写在IBM i(OS/400)上发送电子邮件的程序。程序通过IBM i主机上配置的SMTP服务器发送邮件,支持附件和HTML格式。
IDENTIFICATION DIVISION.
PROGRAM-ID. SENDMAIL.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMAIL ASSIGN TO EMAILFILE.
SELECT ATTACHMENT ASSING TO ATTFILE.
DATA DIVISION.
FILE SECTION.
FD EMAIL
LABEL RECORDS ARE STANDARD
DATA RECORD IS EMAIL-RECORD.
01 EMAIL-RECORD.
05 EMAIL-TO PIC X(80).
05 EMAIL-FROM PIC X(80).
05 EMAIL-SUBJECT PIC X(80).
05 EMAIL-BODY PIC X(4000).
FD ATTACHMENT
LABEL RECORDS ARE STANDARD
DATA RECORD IS ATTACHMENT-RECORD.
01 ATTACHMENT-RECORD.
05 ATT-FILENAME PIC X(80).
05 ATT-DATA OCCURS 0 TO 200 TIMES DEPENDING ON ATT-SIZE.
10 ATT-SIZE COMP PIC S9(8) VALUE 0.
10 ATT-BYTES PIC X(4096).
WORKING-STORAGE SECTION.
77 SMTP-SERVER PIC X(40) VALUE 'smtp.example.com'.
77 SMTP-USER PIC X(15) VALUE 'username'.
77 SMTP-PASS PIC X(15) VALUE 'password'.
77 EMAIL-COUNT PIC S9(8) VALUE 0.
77 ATT-COUNT PIC S9(8) VALUE 0.
PROCEDURE DIVISION.
MAIN.
OPEN INPUT EMAIL ATTACHMENT.
PERFORM UNTIL EOF(EMAIL)
READ EMAIL INTO EMAIL-RECORD
AT END SET EOF(EMAIL) TO TRUE
END-READ.
PERFORM UNTIL EOF(ATTACHMENT)
READ ATTACHMENT INTO ATTACHMENT-RECORD
AT END SET EOF(ATTACHMENT) TO TRUE
END-READ.
IF ATT-COUNT = 0
CALL 'QP2SHELL' USING '/QOpenSys/usr/bin/base64 -w 0 ' ATT-FILENAME
ATT-BYTES = QUOTE(_)SPACE.
ATT-SIZE = LENGTH(ATT-BYTES).
ATT-COUNT = ATT-COUNT + 1.
END-IF.
END-PERFORM.
CALL 'QP2SHELL' USING 'openssl s_client -host 'SMTP-SERVER' -port 465 -crlf
-authenticate_login -user 'SMTP-USER' 'SMTP-PASS''.
IF EMAIL-COUNT = 0
DISPLAY 'EHLO 'SMTP-SERVER'.
DISPLAY 'AUTH LOGIN'.
CALL 'QP2SHELL' USING 'echo 'SMTP-USER' | base64 -w 0'.
CALL 'QP2SHELL' USING 'echo 'SMTP-PASS' | base64 -w 0'.
EMAIL-COUNT = EMAIL-COUNT + 1.
END-IF.
DISPLAY 'MAIL FROM:<'EMAIL-FROM'>'.
DISPLAY 'RCPT TO:<'EMAIL-TO'>'.
DISPLAY 'DATA'.
DISPLAY 'MIME-VERSION: 1.0'.
DISPLAY 'CONTENT-TYPE: MULTIPART/MIXED; BOUNDARY=IAA00000000'.
DISPLAY 'SUBJECT:' EMAIL-SUBJECT.
DISPLAY 'TO:' EMAIL-TO.
DISPLAY 'FROM:' EMAIL-FROM.
DISPLAY '--IAA00000000'.
DISPLAY 'CONTENT-TYPE: TEXT/HTML; CHARSET="US-ASCII"'.
DISPLAY 'CONTENT-TRANSFER-ENCODING: 8BIT'.
DISPLAY QUOTE(EMAIL-BODY).
IF ATT-COUNT > 0
DISPLAY '--IAA00000000'.
DISPLAY 'CONTENT-TYPE: APPLICATION/MSWORD; NAME="'ATT-FILENAME'"'.
DISPLAY 'CONTENT-TRANSFER-ENCODING: BASE64'.
PERFORM VARYING I FROM 1 BY 55
UNTIL I > ATT-SIZE
DISPLAY QUOTE(SUBSTRING(ATT-BYTES FROM I FOR 55)) '=='.
END-PERFORM.
DISPLAY '--IAA00000000--'.
END-IF.
DISPLAY '.'.
DISPLAY 'QUIT'.
END-PERFORM.
CLOSE EMAIL ATTACHMENT.
STOP RUN.
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com
用户评论
相关推荐
使用COBOL编写在IBM i上发送电子邮件的程序
本示例展示了如何使用COBOL编写在IBM i(OS/400)上发送电子邮件的程序。程序通过IBM i主机上配置的SMTP服务器发送邮件,支持附件和HTML格式。IDENTIFICATION DIV
IBM i(OS/400)V7R4
COBOL
2023-05-26 10:53
使用RPG IV在IBM i上发送电子邮件
本示例展示了如何使用RPG IV在IBM i (OS/400)上发送电子邮件。这可以在需要自动发送电子邮件的业务应用程序中使用。H dftactgrp(*no) actgrp('EMAIL')
IBM i 7.2或更高版本
RPG IV
2023-03-21 16:23
通过RPGLE在IBM i上发送电子邮件
该示例展示了如何使用RPGLE在IBM i上发送电子邮件。邮件内容可以包含附件。/copy qsysinc/qrpglesrc,pbEmaildcl-s fileName char(128);
IBM i 7.3
IBM Rational Developer for i
2023-05-26 22:39
使用RPGLE在IBM i (os/400)上发送电子邮件
本示例代码演示如何使用RPGLE编写程序在IBM i (os/400)上发送电子邮件。该程序具有灵活性,可以根据需要更新发件人,收件人,主题和邮件内容。发送邮件需要设置SMTP服务器和端口号。//发
IBM i 7.4
RPGLE
2023-04-16 18:23
使用 RPGLE 在 IBM i (OS/400) 上发送电子邮件
本示例演示如何使用 RPGLE 在 IBM i (OS/400) 上发送电子邮件。介绍了如何设置收件人、主题、正文和附件,并包括以下功能:验证 SMTP 服务器和发送电子邮件。我们将使用 Scott
IBM i 7.3
RPGLE
2023-03-27 15:06
如何在IBM i (OS/400)上发送电子邮件
本示例代码演示如何在IBM i (OS/400)上使用API发送电子邮件。实现方式是首先使用API函数QSYSOPR()设置用户的默认邮箱地址,然后使用API函数SNDRPGMAIL()发送邮件。/
IBM i (OS/400) V7R3
IBM
2023-03-17 16:23
使用RPG编写在IBM i上编写记录锁定/解锁程序的示例
该示例展示了如何使用RPG编写一个简单的记录锁定/解锁程序,以帮助其他程序员更好地管理文件操作。该程序可以在IBM i上运行。/free // 定义需要锁定/解锁的文件 FMYF
IBM i 7.4
RPG IV
2023-05-01 01:11
用RPGLE编写在IBM i上生成随机数的程序
该示例代码展示了如何在IBM i操作系统上,使用RPGLE语言编写生成随机数的程序。该程序使用了系统的伪随机数生成器,并将生成的随机数作为输入参数传递给另外一个程序进行处理。通过该示例代码,用户可以学
IBM i 7.4
RPGLE
2023-05-30 01:44
如何在IBM i (OS/400)上运行COBOL程序?
COBOL是IBM i操作系统上常用的编程语言之一。在运行COBOL程序之前,需要确保已经安装了COBOL编译器。以下是一个简单的COBOL程序示例:IDENTIFICATION DIVISION.
IBM i (OS/400) V5R4及以上版本,COBOL编译器
IBM i (OS/400)
2023-03-15 08:56
使用IBM i (OS/400)发送电子邮件的示例代码
本示例代码演示了如何在IBM i (OS/400)中使用Java Mail API发送电子邮件。它包括SMTP服务器和身份验证设置以及电子邮件内容。这将帮助需要在IBM i上发送电子邮件的用户快速实现
IBM i (OS/400) V7R4
Java Mail API
2023-05-24 13:00