я один раз делал отправку мыла через PL/SQL по образу и подобию вот этого (все работало, исходник с SQL.ru)
| Код | declare sender varchar2(80) := '[email protected]'; recipient varchar2(80) := '[email protected]'; smtpHost varchar2(80) := 'smtp.yandex.ru'; smtpUser varchar2(256) := 'denislpopov'; smtpPassword varchar2(256) := '<password>';
mail_conn utl_smtp.connection; separator varchar2(1) := ' '; content_charset varchar2(8) := 'koi-8r';
procedure send_header(name in varchar2, header in varchar2) as begin utl_smtp.write_raw_data(mail_conn, UTL_RAW.cast_to_raw(name||': '||header||utl_tcp.CRLF)); end;
begin mail_conn := utl_smtp.open_connection(smtpHost, 25); utl_smtp.helo(mail_conn, smtpHost); -- If Authentication required for SMTP -- After upgrade to Oracle 9i, replace demo_base64.encode -- with the native utl_encode.base64_encode for better performance. utl_smtp.command(mail_conn, 'AUTH LOGIN'); utl_smtp.command( mail_conn , utl_raw.cast_to_varchar2( utl_encode.base64_encode(utl_raw.cast_to_raw(smtpUser)) ) ); utl_smtp.command( mail_conn , utl_raw.cast_to_varchar2( utl_encode.base64_encode(utl_raw.cast_to_raw(smtpPassword)) ) );
utl_smtp.mail(mail_conn, sender); utl_smtp.rcpt(mail_conn, recipient); utl_smtp.open_data(mail_conn); send_header('From', sender); send_header('To', recipient); send_header('CC', recipient); send_header('Subject', 'Test Проверка'); send_header('MIME-Version', '1.0'); send_header('Content-Type', 'text/plain; charset="'||content_charset||'"');
utl_smtp.write_raw_data( mail_conn , utl_raw.cast_to_raw(utl_tcp.CRLF||'Графиня изменившимся лицом бежит пруду') );
utl_smtp.close_data(mail_conn); utl_smtp.quit(mail_conn); end; /
|
|