전자 메일을 보내는 절차가 있으며이 절차는 다른 기능 및 절차 (주로 경고 및 알림 보내기에 사용)에서 호출됩니다.절차 메일 알림 보내기
우리가 직면 한 한 가지 문제는 메일 서버가 다운 된 경우 함수 또는 프로 시저를 호출하면 실행이 중지된다는 것입니다. 즉, 그들이 수행해야하는 기능을 수행하지 않는다는 것입니다. 그 기능 또는 프로 시저를 호출하거나 그 문제에 대해 메일 서버가 다운 된 경우에도 MailProcedure가 호출해야하는 클라이언트가 해당 기능을 수행하는지 확인하려면 어떻게해야합니까?
어떻게하면됩니까? 도움이 많이 필요합니다. 메일 절차
CREATE OR REPLACE PROCEDURE MailProcedure(frm_id IN VARCHAR2, to_id IN VARCHAR2, subject IN VARCHAR2, body_text IN VARCHAR2)
AS
c utl_tcp.connection;
rc integer;
BEGIN
c := utl_tcp.open_connection('email_server', 25);
rc := utl_tcp.write_line(c, 'string');
rc := utl_tcp.write_line(c, 'from address');
rc := utl_tcp.write_line(c, 'to address');
rc := utl_tcp.write_line(c, 'Subject');
rc := utl_tcp.write_line(c, 'body');
utl_tcp.close_connection(c);
EXCEPTION
WHEN OTHERS
THEN
null;
END;
/
메일 서버가 다운되면 어떻게됩니까? 발신자를 성공시키고 이메일을 보내지 않으시겠습니까? 나중에 배달하기 위해 이메일을 대기열에 넣으시겠습니까? 다른 것? 'MailProcedure'가 실제로'기타 예외 그 자체 '예외 핸들러를 가지고 있다면, 호출자는 어떻게 실패할까요? 작성된대로,'MailProcedure'는 자동적으로 실패 할 것입니다. 아마 최선의 해결책은 아니지만 호출자에게 예외를 발생시키지 않아야합니다. –
메일 서버가 다운되면 메일을 보낼 수 없으며 나중에 배달 대기 상태가됩니다. 어떻게해야합니까? 감사합니다 – user75ponic