Send Mail Etiketli Yazılar

Oracle – PL/SQL ile Mail Gönderme

--Öncelikle göndermek için gereken yetkileri tanımlıyoruz,
--1
BEGIN
dbms_network_acl_admin.create_acl (
acl => 'cahari.xml',
description => 'mai atmak için',
principal => 'tablespace yazın',
is_grant => true,
privilege => 'connect',
start_date => null,
end_date => null
);
END;

--2
begin
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => 'cahari.xml',
principal => 'tablespace yazın',
is_grant => true,
privilege => 'resolve');
end;

--3
begin
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl => 'cahari.xml',
host => 'Buraya host ip yi yazıyoruz.');
end;

--4
--Procedure yaratılıyor
create or replace
PROCEDURE MailGonder
( sender IN VARCHAR2,
recipient IN VARCHAR2,
subject IN VARCHAR2,
message IN VARCHAR2)
IS
mailhost VARCHAR2(30) := '10.10.13.253';
mail_conn utl_smtp.connection;
crlf VARCHAR2( 2 ):= CHR( 13 ) || CHR( 10 );
mesg VARCHAR2( 1000 );

BEGIN
mail_conn := utl_smtp.open_connection(mailhost, 25);

mesg:= 'Date: ' || TO_CHAR( SYSDATE, 'dd Mon yy hh24:mi:ss' ) || crlf
||
'From: <'||sender||'>' || crlf ||
'Subject: '||subject || crlf ||
'To: '||recipient || crlf ||
''||crlf||
'MIME-Version: 1.0'||crlf|| message;

utl_smtp.helo(mail_conn, mailhost);
utl_smtp.mail(mail_conn, sender);
utl_smtp.rcpt(mail_conn, recipient);
utl_smtp.data(mail_conn, mesg);
utl_smtp.quit(mail_conn);

Exception
WHEN OTHERS THEN
raise_application_error(-20002,'Mail Gönderilemedi'||SQLERRM);
END;

--5
--Kullanım şekli
Begin
MailGonder('orhan@mail.com','orhan@mail.com','Konu','Deneme mesajı');
End;