-
Notifications
You must be signed in to change notification settings - Fork 24
/
auth.plsql
42 lines (27 loc) · 1.44 KB
/
auth.plsql
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
declare
c_mailserver constant varchar2(100) := '&1';
c_from_user constant varchar2(100) := '&2';
c_recpient constant varchar2(100) := '&3';
c_auth_pw constant varchar2(100) := '&4';
c_port constant number := 587;
v_connection utl_smtp.connection;
begin
v_connection := utl_smtp.open_connection(c_mailserver, c_port);
-- Note: ehlo instead of helo
utl_smtp.ehlo(v_connection, c_mailserver);
utl_smtp.command(v_connection, 'AUTH LOGIN');
utl_smtp.command(v_connection, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(c_from_user))));
utl_smtp.command(v_connection, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(c_auth_pw ))));
utl_smtp.mail(v_connection, c_from_user);
utl_smtp.rcpt(v_connection, c_recpient);
utl_smtp.open_data(v_connection);
utl_smtp.write_data(v_connection, 'From: "Name Sender" <' || c_from_user || '>' || utl_tcp.crlf);
utl_smtp.write_data(v_connection, 'To: "Name Recipient" <' || c_recpient || '>' || utl_tcp.crlf);
utl_smtp.write_data(v_connection, 'Subject: Test Mail' || utl_tcp.crlf);
utl_smtp.write_data(v_connection, utl_tcp.crlf);
utl_smtp.write_data(v_connection, 'Foo bar baz' || utl_tcp.crlf);
utl_smtp.write_data(v_connection, 'one, two, three.' || utl_tcp.crlf);
utl_smtp.close_data(v_connection);
utl_smtp.quit(v_connection);
end;
/