CREATE OR REPLACE PACKAGE WUCY.MAIL IS
-------------------------------
--メールメイン処理
-------------------------------
PROCEDURE MAIL_MAIN(
in_sub IN VARCHAR2 DEFAULT NULL
,in_txt_mail_sel IN VARCHAR2 DEFAULT NULL
,in_txt_sendadd_sel IN VARCHAR2 DEFAULT NULL
);
-------------------------------
--メール画面処理
-------------------------------
FUNCTION MAIL_DISP(
in_txt_mail_sel IN VARCHAR2 DEFAULT NULL
,in_txt_sendadd_sel IN VARCHAR2 DEFAULT NULL
,in_error IN VARCHAR2 DEFAULT NULL
)
RETURN BOOLEAN;
-------------------------------
--メール発信処理
-------------------------------
FUNCTION MAIL_SEND(
in_txt_mail_sel IN VARCHAR2 DEFAULT NULL
,in_txt_sendadd_sel IN VARCHAR2 DEFAULT NULL
,out_error OUT VARCHAR2
)
RETURN BOOLEAN;
END MAIL;
/
CREATE OR REPLACE PACKAGE BODY WUCY.MAIL IS
-------------------------------
--メールメイン処理
-------------------------------
PROCEDURE MAIL_MAIN(
in_sub IN VARCHAR2 DEFAULT NULL
,in_txt_mail_sel IN VARCHAR2 DEFAULT NULL
,in_txt_sendadd_sel IN VARCHAR2 DEFAULT NULL
)
IS
RTN_BOOLEAN BOOLEAN;
wk_error VARCHAR2(100) DEFAULT NULL;
wk_txt_mail_sel VARCHAR2(100);
BEGIN
IF in_sub = 'MAIL' THEN
RTN_BOOLEAN := MAIL_DISP(
in_txt_mail_sel => in_txt_mail_sel
,in_txt_sendadd_sel => in_txt_sendadd_sel
,in_error => wk_error
);
ELSIF in_sub = '発信' THEN
RTN_BOOLEAN := MAIL_SEND(
in_txt_mail_sel => in_txt_mail_sel
,in_txt_sendadd_sel => in_txt_sendadd_sel
,out_error => wk_error
);
RTN_BOOLEAN := MAIL_DISP(
in_txt_mail_sel => in_txt_mail_sel
,in_txt_sendadd_sel => in_txt_sendadd_sel
,in_error => wk_error
);
END IF;
END MAIL_MAIN;
-------------------------------
--メール画面処理
-------------------------------
FUNCTION MAIL_DISP(
in_txt_mail_sel IN VARCHAR2 DEFAULT NULL
,in_txt_sendadd_sel IN VARCHAR2 DEFAULT NULL
,in_error IN VARCHAR2 DEFAULT NULL
)
RETURN BOOLEAN
IS
BEGIN
HTP.P('<HTML>');
HTP.P(' <HEAD>');
HTP.P(' <TITLE>メールシステム</TITLE>');
HTP.P(' < META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET="UTF-8">');
HTP.P(' </HEAD>');
HTP.P(' <SCRIPT LANGAGE="JAVASCRIPT">');
---------------------
--ボタン処理関数
--para=1:発信
---------------------
HTP.P(' function btn_clk(para){');
HTP.P(' if(para == "1"){');
HTP.P(' if(confirm("受信を確認しますか。")){');
HTP.P(' document.form_MAIL.in_sub.value = "発信";');
HTP.P(' document.form_MAIL.submit();');
HTP.P(' return true;');
HTP.P(' }');
HTP.P(' }');
HTP.P(' }');
HTP.P(' </SCRIPT>');
HTP.P('<BODY>');
HTP.P('<FORM ACTION="MAIL.MAIL_MAIN" METHOD="POST" NAME="form_MAIL">');
HTP.P('<INPUT TYPE="HIDDEN" NAME="in_sub">');
--メール発信システム
HTP.P('<DIV STYLE = "OVERFLOW-Y:NO;HEIGHT = 6%;">');
HTP.P('<TABLE style="visibility:visible" border=1 WIDTH=300 HEIGHT =50 ALIGN = CENTER >');
HTP.P('<TR HEIGHT = 5% >');
HTP.P('<TD align=center width=355 bgcolor=#b0c4de>メール発信システム</TD>');
HTP.P('</TR>');
HTP.P('</TABLE>');
HTP.P('</DIV>');
HTP.P('<HR>');
HTP.P('<TABLE>');
HTP.P('<TR>');
HTP.P('<TD>');
HTP.P('宛名<INPUT TYPE="text" size="50"
VALUE="'|| FCB999_GET_VALUE(in_txt_sendadd_sel) ||'"
NAME="in_txt_sendadd_sel" > ');
HTP.P('</TD>');
HTP.P('</TR>');
HTP.P('</TABLE>');
--テキスト
HTP.P('<TABLE>');
HTP.P('<TR>');
HTP.P('<TD>');
HTP.P('<textarea cols=40 rows=10 name="in_txt_mail_sel">');
HTP.P('</textarea>');
HTP.P('</TD>');
HTP.P('</TR>');
HTP.P('</TABLE>');
--発信ボタン
HTP.P('<TABLE>');
HTP.P('<TR>');
HTP.P('<TD>');
HTP.P('<INPUT TYPE="BUTTON" VALUE="発信" STYLE="WIDTH:80" onClick="btn_clk(1)">');
HTP.P('</TD>');
HTP.P('</TR>');
HTP.P('</TABLE>');
HTP.P('<HR>');
IF in_error IS NOT NULL THEN
HTP.P(' <FONT COLOR="RED">'||in_error||'</FONT>');
END IF;
HTP.P('</BODY>');
HTP.P('</HTML>');
RETURN TRUE;
END MAIL_DISP;
-------------------------------
--メール発信処理
-------------------------------
FUNCTION MAIL_SEND(
in_txt_mail_sel IN VARCHAR2 DEFAULT NULL
,in_txt_sendadd_sel IN VARCHAR2 DEFAULT NULL
,out_error OUT VARCHAR2
)
RETURN BOOLEAN
IS
mailhost VARCHAR2(64) := 'smtp.in.solutions.sh';
sender VARCHAR2(64) := 'wucy@163.com';
--recipient VARCHAR2(64) := 'wucy@163.com';
recipient VARCHAR2(64) := in_txt_sendadd_sel;
err_msg VARCHAR2(100);
mail_conn utl_smtp.connection;
BEGIN
mail_conn := utl_smtp.open_connection(mailhost,25);
utl_smtp.helo(mail_conn,mailhost);
utl_smtp.mail(mail_conn,sender);
utl_smtp.rcpt(mail_conn,recipient);
utl_smtp.open_data(mail_conn);
utl_smtp.write_data(mail_conn,in_txt_mail_sel||chr(13));
utl_smtp.close_data(mail_conn);
utl_smtp.quit(mail_conn);
out_error := '発信成功!';
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
out_error := '発信失敗!';
RETURN FALSE;
END MAIL_SEND;
END MAIL;
/