Oracle 11gR2 Mail Gönderme

1. Öncelikle UTL_MAIL paketini yüklüyoruz.
CONN sys /password as sysdba
@$ORACLED_HOME/rdbms/admin/utlmail.sql
@$ORACLED_HOME/rdbms/admin/prvtmail.plb
2. Mail gönderecek kullanıcıya paketi kullanma yetkisi veriyoruz.

GRANT execute ON utl_mail TO "USER";
3. SMTP sunucumuzu tanımlıyoruz.
alter system set smtp_out_server = 'IP_ADRESS:25' scope=both;

4. 11g ile gelen güvenlik önlemlerinde hata yaşamamak için aşağıdaki komutları çalıştırıyoruz.(host ve username değiştirerek)

Aksi taktirde 11g de  aşağıdaki hatayı almamız muhtemeldir.
ORA-24247: network access denied by access control list (ACL)
BEGIN
   DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
    acl          => 'mail_access.xml',
    description  => 'Permissions to access e-mail server.',
    principal    => 'PUBLIC',
    is_grant     => TRUE,
    privilege    => 'connect');
   COMMIT;
END;

BEGIN
   DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
    acl          => 'mail_access.xml',
    host         => 'mymailserver@mydomain.com',
    lower_port   => 25,
    upper_port   => 25
    );
   COMMIT;
END;
5. Son olarak mailimizi gönderiyoruz.
begin
utils.send_mail(
p_sender => ‘ora11gtest@mydomain.com’,
p_recipients => ‘matthiash@mydomain.com’,
p_subject => ‘This is the subject line!’,
p_message => ‘Hello World!’);
end;

Kaynak : http://matthiashoys.wordpress.com/2012/04/27/ora-06502-ora-24247-calling-utl_mail-from-oracle-11gr2/

Yorum Gönder

Daha yeni Daha eski