Home » SQL & PL/SQL » SQL & PL/SQL » Send mails using PL/SQL in oracle.
Send mails using PL/SQL in oracle. [message #8079] Fri, 25 July 2003 00:42 Go to next message
BABU SRSB
Messages: 42
Registered: June 2002
Member
Hi All,

I need a small favour from u. I need to send a mail using pl/sql through ORACLE.
at now i have oracle 8i database.
To achieve the above target what should i need, and how to send a mail in pl/sql. providing the sample code is appreciatable.

Thanks & regards,

Babu.
Re: Send mails using PL/SQL in oracle. [message #8082 is a reply to message #8079] Fri, 25 July 2003 02:15 Go to previous messageGo to next message
Maaher
Messages: 7065
Registered: December 2001
Senior Member
Search the boards, this question has been asked more than once. Look for UTL_SMTP.

MHE
Re: Send mails using PL/SQL in oracle. [message #8083 is a reply to message #8079] Fri, 25 July 2003 02:22 Go to previous message
Pawan
Messages: 33
Registered: June 2002
Member
Hi Check This..........

rem Purpose: Send e-mail messages from PL/SQL
rem Notes: From Oracle8i release 8.1.6 one can send e-mail messages
rem directly from PL/SQL using either the UTL_TCP or UTL_SMTP
rem packages. JServer needs to be installed and configured.
rem Pont the IP Address to your local SMTP (Simple Mail
rem Transport) Server. No pipes or external procedures are
rem required.
rem -----------------------------------------------------------------------

CREATE OR REPLACE PROCEDURE SEND_MAIL (
msg_from varchar2 := 'oracle',
msg_to varchar2,
msg_subject varchar2 := 'E-Mail message from your database',
msg_text varchar2 := '' )
IS
c utl_tcp.connection;
rc integer;
BEGIN
c := utl_tcp.open_connection('127.0.0.1', 25); -- open the SMTP port 25 on local machine
dbms_output.put_line(utl_tcp.get_line(c, TRUE));
rc := utl_tcp.write_line(c, 'HELO localhost');
dbms_output.put_line(utl_tcp.get_line(c, TRUE));
rc := utl_tcp.write_line(c, 'MAIL FROM: '||msg_from);
dbms_output.put_line(utl_tcp.get_line(c, TRUE));
rc := utl_tcp.write_line(c, 'RCPT TO: '||msg_to);
dbms_output.put_line(utl_tcp.get_line(c, TRUE));
rc := utl_tcp.write_line(c, 'DATA'); -- Start message body
dbms_output.put_line(utl_tcp.get_line(c, TRUE));
rc := utl_tcp.write_line(c, 'Subject: '||msg_subject);
rc := utl_tcp.write_line(c, '');
rc := utl_tcp.write_line(c, msg_text);
rc := utl_tcp.write_line(c, '.'); -- End of message body
dbms_output.put_line(utl_tcp.get_line(c, TRUE));
rc := utl_tcp.write_line(c, 'QUIT');
dbms_output.put_line(utl_tcp.get_line(c, TRUE));
utl_tcp.close_connection(c); -- Close the connection
EXCEPTION
when others then
raise_application_error(
-20000, 'Unable to send e-mail message from pl/sql because of: '||
sqlerrm);
END;
/
show errors

-- Examples:
set serveroutput on

exec send_mail(msg_to =>'orafaq@orafaq.org');

exec send_mail(msg_to =>'orafaq@orafaq.org', -
msg_text=>'Look Ma, I can send mail from plsql' -
);
Previous Topic: insert into nested tables
Next Topic: Aggregation
Goto Forum:
  


Current Time: Thu Apr 25 10:02:44 CDT 2024