Friday, July 10, 2015

send mail via DB/UNIX

UNIX

more <filename with path> | mailx -s "<subject>" sanegi


Oracle Database

 begin

   EXECUTE IMMEDIATE 'ALTER SESSION SET smtp_out_server = ''127.0.0.1''';

sys.UTL_MAIL.SEND ('sanegi@cisco.com', 'satyapsnegi@gmail.com', 'sanegi@cisco.com',
               'satyapsnegi@yahoo.co.in', 'text/plain','ha ha ha');
             
               end;
               /

We can SMTP utility also

CREATE OR REPLACE PROCEDURE  TEST_send_mail (msg_to         VARCHAR2,
                                       msg_subject    VARCHAR2,
                                       msg_text       VARCHAR2)
IS
   c          UTL_SMTP.connection;
   rc         INTEGER;
   msg_from   VARCHAR2 (50) := '<from_mail_alias>';
   mailhost   VARCHAR2 (30) := '<server_alias>';             -- local database host
BEGIN
   c := UTL_SMTP.open_connection (mailhost, 25);            -- SMTP on port 25
   UTL_SMTP.helo (c, mailhost);
   UTL_SMTP.mail (c, msg_from);
   UTL_SMTP.rcpt (c, msg_to);

   UTL_SMTP.data (
      c,
         'From: Oracle Database'
      || UTL_TCP.crlf
      || 'To: '
      || msg_to
      || UTL_TCP.crlf
      || 'Subject: '
      || msg_subject
      || UTL_TCP.crlf
      || msg_text);
   UTL_SMTP.quit (c);
EXCEPTION
   WHEN UTL_SMTP.invalid_operation
   THEN
      DBMS_OUTPUT.put_line (' Invalid Operation in Mail attempt
using UTL_SMTP.');
   WHEN UTL_SMTP.transient_error
   THEN
      DBMS_OUTPUT.put_line (' Temporary e-mail issue - try again');
   WHEN UTL_SMTP.permanent_error
   THEN
      DBMS_OUTPUT.put_line (' Permanent Error Encountered.');
END;
/

No comments:

Post a Comment