1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
CREATEORREPLACEPROCEDURE Html_Email(p_to INVARCHAR2,
p_from INVARCHAR2,
p_subject INVARCHAR2,
p_text INVARCHAR2DEFAULTNULL,
p_html INVARCHAR2DEFAULTNULL,
p_smtp_hostname INVARCHAR2,
p_smtp_portnum INVARCHAR2)IS
l_boundary VARCHAR2(255)DEFAULT'a1b2c3d4e3f2g1';
l_connection utl_smtp.connection;
l_body_html CLOB:= EMPTY_CLOB;
l_offset NUMBER;
l_ammount NUMBER;
l_temp VARCHAR2(32767)DEFAULTNULL;
l_dest VARCHAR2(32767);
l_dest_tmp VARCHAR2(32767);
BEGIN
-------------------------------
-- Procedure d'envoi de mail --
-------------------------------
l_dest := p_to;
l_connection := utl_smtp.open_connection(p_smtp_hostname, p_smtp_portnum);
utl_smtp.helo(l_connection, p_smtp_hostname);
utl_smtp.mail(l_connection, p_from);
WHILE INSTR(l_dest,',')!=0LOOP
l_dest_tmp := SUBSTR(l_dest,1, INSTR(l_dest,',')-1);
l_dest := SUBSTR(l_dest, INSTR(l_dest,',')+1);
utl_smtp.rcpt(l_connection, l_dest_tmp);
ENDLOOP;
utl_smtp.rcpt(l_connection, l_dest);
l_temp := l_temp || 'MIME-Version: 1.0' || CHR(13) || CHR(10);
l_temp := l_temp || 'To: ' || p_to || CHR(13) || CHR(10);
l_temp := l_temp || 'From: ' || p_from || CHR(13) || CHR(10);
l_temp := l_temp || 'Subject: ' || p_subject || CHR(13) || CHR(10);
l_temp := l_temp || 'Reply-To: ' || p_from || CHR(13) || CHR(10);
l_temp := l_temp || 'Content-Type: multipart/alternative; boundary=' ||
CHR(34) || l_boundary || CHR(34) || CHR(13) || CHR(10);
dbms_lob.createtemporary(l_body_html,FALSE,10);
dbms_lob.WRITE(l_body_html, LENGTH(l_temp),1, l_temp);
l_offset := dbms_lob.getlength(l_body_html)+1;
l_temp :='--' || l_boundary || CHR(13) || CHR(10);
l_temp := l_temp || 'content-type: text/plain; charset=windows-1252' ||
CHR(13) || CHR(10) || CHR(13) || CHR(10);
|
Partager