Bonjour
est ce que qqun sait comment envoyer des mails sous forms 10 G et que faut uil utiliser comme comamnde ?
merci
Version imprimable
Bonjour
est ce que qqun sait comment envoyer des mails sous forms 10 G et que faut uil utiliser comme comamnde ?
merci
Le plus simple est d'utiliser les packages de la BDD. Quelle est votre version de Base ?
que j'utiilsie en base est 9.0.1.8 ( sous Toad)
qu'entendez vous par les packages de la base ?
J'entends le package UTL_SMTP:
Code:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 CREATE OR REPLACE PROCEDURE Html_Email( p_to IN VARCHAR2, p_from IN VARCHAR2, p_subject IN VARCHAR2, p_text IN VARCHAR2 DEFAULT NULL, p_html IN VARCHAR2 DEFAULT NULL, p_smtp_hostname IN VARCHAR2, p_smtp_portnum IN VARCHAR2 ) 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) DEFAULT NULL; l_dest VARCHAR2(32767); l_dest_tmp VARCHAR2(32767); l_text_html VARCHAR2(32767) := p_html; 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, ',') != 0 LOOP 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); END LOOP; utl_smtp.rcpt(l_connection, l_dest); l_temp := l_temp || 'MIME-Version: 1.0' || utl_tcp.CRLF; l_temp := l_temp || 'To: ' || p_to || utl_tcp.CRLF; l_temp := l_temp || 'From: ' || p_from || utl_tcp.CRLF; l_temp := l_temp || 'Subject: ' || p_subject || utl_tcp.CRLF; l_temp := l_temp || 'Reply-To: ' || p_from || utl_tcp.CRLF; l_temp := l_temp || 'Content-Type: multipart/alternative; boundary=' || CHR(34) || l_boundary || CHR(34) || utl_tcp.CRLF; 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 || utl_tcp.CRLF; l_temp := l_temp || 'Content-Type: text/html; charset=UTF-8' ||utl_tcp.CRLF|| 'Content-Transfer-Encoding: 8bit' || utl_tcp.CRLF|| utl_tcp.CRLF || utl_tcp.CRLF; l_offset := dbms_lob.getlength(l_body_html) + 1; dbms_lob.WRITE(l_body_html, LENGTH(l_temp), l_offset, l_temp); l_offset := dbms_lob.getlength(l_body_html) + 1; dbms_lob.WRITE(l_body_html, LENGTH(l_text_html), l_offset, l_text_html); l_temp := utl_tcp.CRLF || '--' || l_boundary || '--' || CHR(13); l_offset := dbms_lob.getlength(l_body_html) + 1; dbms_lob.WRITE(l_body_html, LENGTH(l_temp), l_offset, l_temp); l_offset := 1; l_ammount := 1900; utl_smtp.open_data(l_connection); WHILE l_offset < dbms_lob.getlength(l_body_html) LOOP utl_smtp.write_data(l_connection, dbms_lob.SUBSTR(l_body_html, l_ammount, l_offset)); l_offset := l_offset + l_ammount; l_ammount := LEAST(1900, dbms_lob.getlength(l_body_html) - l_ammount); END LOOP; utl_smtp.close_data(l_connection); utl_smtp.quit(l_connection); dbms_lob.freetemporary(l_body_html); EXCEPTION WHEN OTHERS THEN Dbms_Output.Put_Line( SQLCODE , 'HTML_EMAIL() [' || p_to || ']') ; BEGIN utl_smtp.quit(l_connection); EXCEPTION WHEN OTHERS THEN NULL; END; ROLLBACK; END; /
merci beaucoup !
ca m'aide enormement !