utl_smtp
PL/SQLでメールを送信するメモ
declare
svr varchar2(50) := "localhost";
fr varchar2(50) := "hoge@localhost";
tot varchar2(50) := "fuga@localhost";
sbj varchar2(100) := "テスト";
msg varchar2(1000);
smtp utl_smtp.connection;
begin
msg := "テスト" || chr(13) || chr(10);
smtp := utl_smtp.open_connection(svr, 25);
utl_smtp.helo(smtp,svr);
utl_smtp.mail(smtp,fr);
utl_smtp.rcpt(smtp,tot);
utl_smtp.open_data(smtp);
utl_smtp.write_data(smtp,"To:" || tot || chr(13) || chr(10));
utl_smtp.write_data(smtp,"From:" || fr || chr(13) || chr(10));
utl_smtp.write_data(smtp, "Subject=?iso-2022-jp?B?");
utl_smtp.write_raw_data(smtp,
utl_encode.base64_encode(utl_raw.cast_to_raw(sbj))
);
utl_smtp.write_data(smtp, "?=" || chr(13) || chr(10));
utl_smtp.write_data(smtp, "MIME-Version=1.0" || chr(13) || chr(10));
utl_smtp.write_data(smtp, "Content-Type: text/plain;" || chr(13) || chr(10));
utl_smtp.write_data(smtp, chr(9) || "charset: iso-2022-jp" || chr(13) || chr(10));
utl_smtp.write_data(smtp, "Content-Tranfer-Encoding: base64" || chr(13) || chr(10));
utl_smtp.write_data(smtp, chr(13) || chr(10));
utl_smtp.write_raw_data(smtp, utl_encode.base64_encode(utl_raw.cast_to_raw(msg)));
utl_smtp.close_data(smtp);
utl_smtp.quit(smtp);
end;