• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 编程与数据库 > oracle教程 >

ORACLE自动发邮件代码(2)

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-04-16点击:

    最主要的procsendmail的过程为:
    CREATE OR REPLACE PROCEDURE PROCSENDEMAIL (
    P_TXT VARCHAR2,
    P_SUB VARCHAR2,
    P_SENDOR VARCHAR2,
    P_RECEIVER VARCHAR2,
    P_SERVER VARCHAR2,
    P_PORT NUMBER DEFAULT 25 ,
    P_NEED_SMTP INT DEFAULT 0 ,
    P_USER VARCHAR2 DEFAULT NULL ,
    P_PASS VARCHAR2 DEFAULT NULL ,
    P_FILENAME VARCHAR2 DEFAULT NULL ,
    P_ENCODE VARCHAR2 DEFAULT 'bit 7'
    )
    AUTHID CURRENT_USER
    IS
    /*
    作用:用oracle发送邮件
    主要功能:1、支持多收件人。
    2、支持中文
    3、支持抄送人
    4、支持大于32K的附件
    5、支持多行正文
    6、支持多附件
    7、支持文本附件和二进制附件
    8、支持HTML格式
    8、支持
    作者:suk
    参数说明:
    p_txt :邮件正文
    p_sub: 邮件标题
    p_SendorAddress : 发送人邮件地址
    p_ReceiverAddress : 接收地址,可以同时发送到多个地址上,地址之间用","或者";"隔开
    p_EmailServer : 邮件服务器地址,可以是域名或者IP
    p_Port :邮件服务器端口
    p_need_smtp:是否需要smtp认证,0表示不需要,1表示需要
    p_user:smtp验证需要的用户名
    p_pass:smtp验证需要的密码
    p_filename:附件名称,必须包含完整的路径,如"d:\temp\a.txt"。
    可以有多个附件,附件名称只见用逗号或者分号分隔
    p_encode:附件编码转换格式,其中 p_encode='bit 7' 表示文本类型附件
    p_encode='base64' 表示二进制类型附件
    注意:
    1、对于文本类型的附件,不能用base64的方式发送,否则出错
    2、对于多个附件只能用同一种格式发送
    */
    L_CRLF VARCHAR2 (2) := UTL_TCP.CRLF;
    L_SENDORADDRESS VARCHAR2 (4000);
    L_SPLITE VARCHAR2 (10) := '++';
    BOUNDARY CONSTANT VARCHAR2 (256) := '-----BYSUK';
    FIRST_BOUNDARY CONSTANT VARCHAR2 (256) := '--' || BOUNDARY || L_CRLF;
    LAST_BOUNDARY CONSTANT VARCHAR2 (256)
    := '--' || BOUNDARY || '--' || L_CRLF ;
    MULTIPART_MIME_TYPE CONSTANT VARCHAR2 (256)
    := 'multipart/mixed; boundary="' || BOUNDARY || '"' ;
    /* 以下部分是发送大二进制附件时用到的变量 */
    L_FIL BFILE;
    L_FILE_LEN NUMBER;
    L_MODULO NUMBER;
    L_PIECES NUMBER;
    L_FILE_HANDLE UTL_FILE.FILE_TYPE;
    L_AMT BINARY_INTEGER := 672 * 3; /* ensures proper format; 2016 */
    L_FILEPOS PLS_INTEGER := 1; /* pointer for the file */
    L_CHUNKS NUMBER;
    L_BUF RAW (2100);
    L_DATA RAW (2100);
    L_MAX_LINE_WIDTH NUMBER := 54;
    L_DIRECTORY_BASE_NAME VARCHAR2 (100) := 'DIR_FOR_SEND_MAIL';
    L_LINE VARCHAR2 (1000);
    L_MESG VARCHAR2 (32767);
    /* 以上部分是发送大二进制附件时用到的变量 */
    TYPE ADDRESS_LIST
    IS
    TABLE OF VARCHAR2 (100)
    INDEX BY BINARY_INTEGER;
    MY_ADDRESS_LIST ADDRESS_LIST;
    TYPE ACCT_LIST
    IS
    TABLE OF VARCHAR2 (100)
    INDEX BY BINARY_INTEGER;
    MY_ACCT_LIST ACCT_LIST;
    -------------------------------------返回附件源文件所在目录或者名称-----------------------

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1978130638@qq.com ,  QQ