Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Send E-mail from Oracle (9.2.0.1) : SMTP transient error: 421 Service not a

user506051Jul 4 2008 — edited Jul 5 2008
I have used Oracle 9i server (9.2.0.1 version) on Windows XP machine(with SP2).I want to send Email from PL/SQL procedure.
My Question is what sort of configuration needed to perform this activity?
I have installed IIS (Internet Information Service)
in my machine, then configure my SMTP mail server
with a valid email id and password given TCP port 465.
Later I came to know that to send Email from PL/SQL I have to install Oracle JServer Code. Follow three steps. the steps are
1. Execute the script as sys "$ORACLE_HOME\javavm\install\initjvm.sql"
2. Execute the loadjava classfile as
$ORACLE_HOME\plsql\jlib>loadjava -f -v -r -u sys/**** plsql.jar
3. Execute the script as sys "$ORACLE_HOME\rdbms\admin\initplsj.sql"
I sucessfully executed the first step, but for the second step iam not able to locate the plsql.jar file in the specified path.
So Please tell me if there is any other method to perform this task
My code is as follows.

CREATE OR REPLACE PROCEDURE SEND_MAIL (
msg_to varchar2,
msg_subject varchar2,
msg_text varchar2
)
IS
c utl_smtp.connection;
rc integer;
msg_from varchar2(50) := 'aaa@gmail.com';
mailhost VARCHAR2(30) := 'mail.google.com';

BEGIN
c := utl_smtp.open_connection(mailhost, 465);
utl_smtp.helo(c, mailhost);
utl_smtp.mail(c, msg_from);
utl_smtp.rcpt(c, msg_to);
dbms_output.put_line(' Start Sending data');
utl_smtp.data(c,'From: Oracle Database' || utl_tcp.crlf ||
'To: ' || msg_to || utl_tcp.crlf ||
'Subject: ' || msg_subject ||
utl_tcp.crlf || msg_text);
dbms_output.put_line(' Finish Sending data');
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;
/
Procedure Created.

SQL> execute prc_send_mail('aaa@gmail.com','bbb@gmail.com','Good Morning.');

BEGIN prc_send_mail('aaa@gmail.com','bbb@gmail.com','Good Morning.'); END;

*
ERROR at line 1:
ORA-29278: SMTP transient error: 421 Service not available
ORA-06512: at "SYS.UTL_SMTP", line 17
ORA-06512: at "SYS.UTL_SMTP", line 96
ORA-06512: at "SYS.UTL_SMTP", line 374
ORA-06512: at "SCOTT.PRC_SEND_MAIL", line 19
ORA-29278: SMTP transient error: 421 Service not available
ORA-06512: at line 1.
Please tell me how to solve this problem.
Thank You.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 2 2008
Added on Jul 4 2008
1 comment
1,212 views