$PBExportHeader$f_mailto_fj.srf global type f_mailto_fj from function_object end type forward prototypes global function integer f_mailto_fj (string arg_mailaddress, string arg_title, string arg_content, ref string arg_msg) global function integer f_mailto_fj (string arg_mailaddress, string arg_title, string arg_content, s_email_lvfj s_lvfj[], ref string arg_msg) end prototypes global function integer f_mailto_fj (string arg_mailaddress, string arg_title, string arg_content, ref string arg_msg);int rslt = 1 uo_email obj_email obj_email = create uo_email if not f_hasDotNet() then rslt = 0 arg_msg = '如需收发邮件请安装.net2.0!' goto ext end if transaction commit_tran transaction fj_tran s_email_send s_send s_email_sendmx s_sendmx[] s_email_lvfj s_lvfj[] commit_tran = sqlca Long ll_ConnectionID IF f_get_outerconnection_email(ll_ConnectionID,arg_msg) = 1 THEN fj_tran = sys_email_sqlca ELSE rslt = 0 arg_msg = '要使用邮件功能,请先定义邮件数据库' goto ext END IF obj_email.commit_tran = commit_tran obj_email.fj_tran = fj_tran long ll_cnt Select COUNT(0) INTO :ll_cnt from u_email_set where empid = :sys_empid and mailtype = 0; if sqlca.sqlcode <> 0 then rslt = 0 arg_msg = '查询邮箱设置失败,' + sqlca.sqlerrtext goto ext end if if ll_cnt <= 0 then rslt = 0 arg_msg = '没有定义邮箱帐号' goto ext end if select top 1 mailid, mailuser, mailaddress INTO :s_send.mailid, :s_send.senduser, :s_send.sendaddress from u_email_set where empid = :sys_empid and mailtype = 0; if sqlca.sqlcode <> 0 then rslt = 0 arg_msg = '查询邮箱设置失败,' + sqlca.sqlerrtext goto ext end if s_send.mailaddress = s_send.sendaddress select top 1 boxid INTO :s_send.boxid from u_email_box where mailid = :s_send.mailid and boxtype = '发件箱'; if sqlca.sqlcode <> 0 then rslt = 0 arg_msg = '查找发件箱失败' goto ext end if s_send.sendid = 0 s_send.mailtype = '发件' s_send.subject = arg_title s_send.priority = 3 s_send.htmlbody = arg_content s_send.textbody = arg_content s_sendmx[1].sendid = 0 s_sendmx[1].revname = arg_mailaddress s_sendmx[1].revaddress = arg_mailaddress IF obj_email.f_save(s_send,s_sendmx,s_lvfj,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF // 保存成功 发送 string ls_run ls_run = 'longjoe_rev.exe -longjoe&'& + sys_system_id + '&'& + sys_cur_version + '&'& + String(sys_if_register) + '&'& + Commit_Tran.Database + '&'& + Commit_Tran.UserID + '&'& + f_psw_bczh(Commit_Tran.DBPass,0,sys_power_key) + '&'& + Commit_Tran.LogID + '&'& + f_psw_bczh(Commit_Tran.LogPass,0,sys_power_key) + '&'& + Commit_Tran.ServerName + '&'& + string(sys_empid) + '&'& + string(s_send.mailid) + '&'& + '1&'& + fj_tran.Database + '&'& + fj_tran.UserID + '&'& + f_psw_bczh(fj_tran.DBPass,0,sys_power_key) + '&'& + fj_tran.LogID + '&'& + f_psw_bczh(fj_tran.LogPass,0,sys_power_key) + '&'& + fj_tran.ServerName + '&'& + string(s_send.sendid) + '&' IF Run(sys_cur_path + ls_run) = -1 THEN rslt = 0 arg_msg = '运行程序失败!' goto ext END IF ext: destroy obj_email return rslt end function global function integer f_mailto_fj (string arg_mailaddress, string arg_title, string arg_content, s_email_lvfj s_lvfj[], ref string arg_msg);int rslt = 1 uo_email obj_email obj_email = create uo_email if not f_hasDotNet() then rslt = 0 arg_msg = '如需收发邮件请安装.net2.0!' goto ext end if transaction commit_tran transaction fj_tran s_email_send s_send s_email_sendmx s_sendmx[] commit_tran = sqlca Long ll_ConnectionID IF f_get_outerconnection_email(ll_ConnectionID,arg_msg) = 1 THEN fj_tran = sys_email_sqlca ELSE rslt = 0 arg_msg = '要使用邮件功能,请先定义邮件数据库' goto ext END IF obj_email.commit_tran = commit_tran obj_email.fj_tran = fj_tran long ll_cnt Select COUNT(0) INTO :ll_cnt from u_email_set where empid = :sys_empid and mailtype = 0; if sqlca.sqlcode <> 0 then rslt = 0 arg_msg = '查询邮箱设置失败,' + sqlca.sqlerrtext goto ext end if if ll_cnt <= 0 then rslt = 0 arg_msg = '没有定义邮箱帐号' goto ext end if select top 1 mailid, mailuser, mailaddress INTO :s_send.mailid, :s_send.senduser, :s_send.sendaddress from u_email_set where empid = :sys_empid and mailtype = 0; if sqlca.sqlcode <> 0 then rslt = 0 arg_msg = '查询邮箱设置失败,' + sqlca.sqlerrtext goto ext end if s_send.mailaddress = s_send.sendaddress select top 1 boxid INTO :s_send.boxid from u_email_box where mailid = :s_send.mailid and boxtype = '发件箱'; if sqlca.sqlcode <> 0 then rslt = 0 arg_msg = '查找发件箱失败' goto ext end if s_send.sendid = 0 s_send.mailtype = '发件' s_send.subject = arg_title s_send.priority = 3 s_send.htmlbody = arg_content s_send.textbody = arg_content s_sendmx[1].sendid = 0 s_sendmx[1].revname = arg_mailaddress s_sendmx[1].revaddress = arg_mailaddress IF obj_email.f_save(s_send,s_sendmx,s_lvfj,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF // 保存成功 发送 string ls_run ls_run = 'longjoe_rev.exe -longjoe&'& + sys_system_id + '&'& + sys_cur_version + '&'& + String(sys_if_register) + '&'& + Commit_Tran.Database + '&'& + Commit_Tran.UserID + '&'& + f_psw_bczh(Commit_Tran.DBPass,0,sys_power_key) + '&'& + Commit_Tran.LogID + '&'& + f_psw_bczh(Commit_Tran.LogPass,0,sys_power_key) + '&'& + Commit_Tran.ServerName + '&'& + string(sys_empid) + '&'& + string(s_send.mailid) + '&'& + '1&'& + fj_tran.Database + '&'& + fj_tran.UserID + '&'& + f_psw_bczh(fj_tran.DBPass,0,sys_power_key) + '&'& + fj_tran.LogID + '&'& + f_psw_bczh(fj_tran.LogPass,0,sys_power_key) + '&'& + fj_tran.ServerName + '&'& + string(s_send.sendid) + '&' IF Run(sys_cur_path + ls_run) = -1 THEN rslt = 0 arg_msg = '运行程序失败!' goto ext END IF ext: destroy obj_email return rslt end function