Oracle存储过程发送邮件--2--邮件内容服务器等信息

来源:互联网 发布:网络诈骗的常用方式 编辑:程序博客网 时间:2024/06/05 13:26

CREATE OR REPLACE PROCEDURE P_01_SENDEMAIL_FAILD_01(SP_NAME IN NVARCHAR2)

 IS
  /*
  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' 表示二进制类型附件
  */
  P_APP VARCHAR2(50);

  P_TXT       VARCHAR2(32767);
  P_SUB       VARCHAR2(100);
  P_SENDOR    VARCHAR2(100);
  P_RECEIVER  VARCHAR2(500);
  P_SERVER    VARCHAR2(100);
  P_PORT      NUMBER DEFAULT 25;
  P_NEED_SMTP INT DEFAULT 0;
  P_USER      VARCHAR2(100) DEFAULT NULL;
  P_PASS      VARCHAR2(100) DEFAULT NULL;
  P_FILENAME  VARCHAR2(100) DEFAULT NULL;
  P_ENCODE    VARCHAR2(100) DEFAULT 'bit 7';

  ---p_count     number default 0;
  P_DATE DATE;

BEGIN

  -- 变量 初始化
  SELECT SYSDATE INTO P_DATE FROM DUAL;

--接收邮件地址
  P_RECEIVER  := '邮件地址';
  --发送邮件地址
  P_SENDOR := '邮件地址';
  --邮件标题
  P_SUB := '旭辉集团BI系统接口-----' || P_APP || 'DM层数据接口执行失败' || P_DATE;
  --服务器地址
  P_SERVER    := 'smtpcom.地址';
  P_PORT      := 25;
  P_NEED_SMTP := 1;
  --发送邮件用户名
  P_USER := '邮件地址';
  --密码
  P_PASS     := '密码';
  P_FILENAME := '';
  P_ENCODE   := 'base64';
  /*  P_NAME     := CASE P_NUM
    WHEN 1 THEN
     'P_DM_MKT_TO_RATES_ANLY'
    WHEN 2 THEN
     'P_DM_MKT_TO_RATES_ANLY_YEAR'
    WHEN 3 THEN
     'P_DM_MKT_VIST_DEAL_ANLY'
    WHEN 4 THEN
     'P_DM_MKT_PREMIUM_RATE_ANLY'
    WHEN 5 THEN
     'P_DM_MKT_AR_DELAY_ANLY'
    ELSE
     '存储过程名未知'
  END;*/

  -- if (v_diff_type=0) then
  --v_01是一个视图,可以抽取内容为发送邮件的内容
  --   execute immediate ' select count(t.DETAIL_TYPE) from v_01 t ' into p_count;
  -- else
  --  execute immediate ' select count(t.DETAIL_TYPE) from v_01 t where t.diff_type='|| v_diff_type ||' ' into p_count;
  -- end if;

  --绘制表格 开始
  P_TXT := '<table border=0>';
  P_TXT := P_TXT || '<tr>
      <td>如果您收到该封邮件,表明DM层的存储过程执行错误,请检查对应存储过程</td>
      </tr><br/>';
  P_TXT := P_TXT || '</tr>';

  P_TXT := P_TXT || '</table>';
  P_TXT := P_TXT || '<br/><br/>';
  P_TXT := P_TXT || '<td><font size = 3>存储过程名称为:</font></td>';
  P_TXT := P_TXT || '<td><fon size =3>' || SP_NAME || '</font> </td>';
  --绘制表格 结束

  -- 发送邮件处理
  -- if (p_count>0) then
  P_02_SENDEMAIL(P_TXT,
                 P_SUB,
                 P_SENDOR,
                 P_RECEIVER,
                 P_SERVER,
                 P_PORT,
                 P_NEED_SMTP,
                 P_USER,
                 P_PASS,
                 P_FILENAME,
                 P_ENCODE);
  -- end if;
  --

END;

0 0
原创粉丝点击