f_mailto_fj.srf 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. $PBExportHeader$f_mailto_fj.srf
  2. global type f_mailto_fj from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_mailto_fj (string arg_mailaddress, string arg_title, string arg_content, ref string arg_msg)
  6. global function integer f_mailto_fj (string arg_mailaddress, string arg_title, string arg_content, s_email_lvfj s_lvfj[], ref string arg_msg)
  7. end prototypes
  8. global function integer f_mailto_fj (string arg_mailaddress, string arg_title, string arg_content, ref string arg_msg);int rslt = 1
  9. uo_email obj_email
  10. obj_email = create uo_email
  11. if not f_hasDotNet() then
  12. rslt = 0
  13. arg_msg = '如需收发邮件请安装.net2.0!'
  14. goto ext
  15. end if
  16. transaction commit_tran
  17. transaction fj_tran
  18. s_email_send s_send
  19. s_email_sendmx s_sendmx[]
  20. s_email_lvfj s_lvfj[]
  21. commit_tran = sqlca
  22. Long ll_ConnectionID
  23. IF f_get_outerconnection_email(ll_ConnectionID,arg_msg) = 1 THEN
  24. fj_tran = sys_email_sqlca
  25. ELSE
  26. rslt = 0
  27. arg_msg = '要使用邮件功能,请先定义邮件数据库'
  28. goto ext
  29. END IF
  30. obj_email.commit_tran = commit_tran
  31. obj_email.fj_tran = fj_tran
  32. long ll_cnt
  33. Select COUNT(0) INTO :ll_cnt
  34. from u_email_set where empid = :sys_empid and mailtype = 0;
  35. if sqlca.sqlcode <> 0 then
  36. rslt = 0
  37. arg_msg = '查询邮箱设置失败,' + sqlca.sqlerrtext
  38. goto ext
  39. end if
  40. if ll_cnt <= 0 then
  41. rslt = 0
  42. arg_msg = '没有定义邮箱帐号'
  43. goto ext
  44. end if
  45. select top 1 mailid, mailuser, mailaddress
  46. INTO :s_send.mailid, :s_send.senduser, :s_send.sendaddress
  47. from u_email_set
  48. where empid = :sys_empid and mailtype = 0;
  49. if sqlca.sqlcode <> 0 then
  50. rslt = 0
  51. arg_msg = '查询邮箱设置失败,' + sqlca.sqlerrtext
  52. goto ext
  53. end if
  54. s_send.mailaddress = s_send.sendaddress
  55. select top 1 boxid
  56. INTO :s_send.boxid
  57. from u_email_box
  58. where mailid = :s_send.mailid and boxtype = '发件箱';
  59. if sqlca.sqlcode <> 0 then
  60. rslt = 0
  61. arg_msg = '查找发件箱失败'
  62. goto ext
  63. end if
  64. s_send.sendid = 0
  65. s_send.mailtype = '发件'
  66. s_send.subject = arg_title
  67. s_send.priority = 3
  68. s_send.htmlbody = arg_content
  69. s_send.textbody = arg_content
  70. s_sendmx[1].sendid = 0
  71. s_sendmx[1].revname = arg_mailaddress
  72. s_sendmx[1].revaddress = arg_mailaddress
  73. IF obj_email.f_save(s_send,s_sendmx,s_lvfj,arg_msg) = 0 THEN
  74. rslt = 0
  75. GOTO ext
  76. END IF
  77. // 保存成功 发送
  78. string ls_run
  79. ls_run = 'longjoe_rev.exe -longjoe&'&
  80. + sys_system_id + '&'&
  81. + sys_cur_version + '&'&
  82. + String(sys_if_register) + '&'&
  83. + Commit_Tran.Database + '&'&
  84. + Commit_Tran.UserID + '&'&
  85. + f_psw_bczh(Commit_Tran.DBPass,0,sys_power_key) + '&'&
  86. + Commit_Tran.LogID + '&'&
  87. + f_psw_bczh(Commit_Tran.LogPass,0,sys_power_key) + '&'&
  88. + Commit_Tran.ServerName + '&'&
  89. + string(sys_empid) + '&'&
  90. + string(s_send.mailid) + '&'&
  91. + '1&'&
  92. + fj_tran.Database + '&'&
  93. + fj_tran.UserID + '&'&
  94. + f_psw_bczh(fj_tran.DBPass,0,sys_power_key) + '&'&
  95. + fj_tran.LogID + '&'&
  96. + f_psw_bczh(fj_tran.LogPass,0,sys_power_key) + '&'&
  97. + fj_tran.ServerName + '&'&
  98. + string(s_send.sendid) + '&'
  99. IF Run(sys_cur_path + ls_run) = -1 THEN
  100. rslt = 0
  101. arg_msg = '运行程序失败!'
  102. goto ext
  103. END IF
  104. ext:
  105. destroy obj_email
  106. return rslt
  107. end function
  108. 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
  109. uo_email obj_email
  110. obj_email = create uo_email
  111. if not f_hasDotNet() then
  112. rslt = 0
  113. arg_msg = '如需收发邮件请安装.net2.0!'
  114. goto ext
  115. end if
  116. transaction commit_tran
  117. transaction fj_tran
  118. s_email_send s_send
  119. s_email_sendmx s_sendmx[]
  120. commit_tran = sqlca
  121. Long ll_ConnectionID
  122. IF f_get_outerconnection_email(ll_ConnectionID,arg_msg) = 1 THEN
  123. fj_tran = sys_email_sqlca
  124. ELSE
  125. rslt = 0
  126. arg_msg = '要使用邮件功能,请先定义邮件数据库'
  127. goto ext
  128. END IF
  129. obj_email.commit_tran = commit_tran
  130. obj_email.fj_tran = fj_tran
  131. long ll_cnt
  132. Select COUNT(0) INTO :ll_cnt
  133. from u_email_set where empid = :sys_empid and mailtype = 0;
  134. if sqlca.sqlcode <> 0 then
  135. rslt = 0
  136. arg_msg = '查询邮箱设置失败,' + sqlca.sqlerrtext
  137. goto ext
  138. end if
  139. if ll_cnt <= 0 then
  140. rslt = 0
  141. arg_msg = '没有定义邮箱帐号'
  142. goto ext
  143. end if
  144. select top 1 mailid, mailuser, mailaddress
  145. INTO :s_send.mailid, :s_send.senduser, :s_send.sendaddress
  146. from u_email_set
  147. where empid = :sys_empid and mailtype = 0;
  148. if sqlca.sqlcode <> 0 then
  149. rslt = 0
  150. arg_msg = '查询邮箱设置失败,' + sqlca.sqlerrtext
  151. goto ext
  152. end if
  153. s_send.mailaddress = s_send.sendaddress
  154. select top 1 boxid
  155. INTO :s_send.boxid
  156. from u_email_box
  157. where mailid = :s_send.mailid and boxtype = '发件箱';
  158. if sqlca.sqlcode <> 0 then
  159. rslt = 0
  160. arg_msg = '查找发件箱失败'
  161. goto ext
  162. end if
  163. s_send.sendid = 0
  164. s_send.mailtype = '发件'
  165. s_send.subject = arg_title
  166. s_send.priority = 3
  167. s_send.htmlbody = arg_content
  168. s_send.textbody = arg_content
  169. s_sendmx[1].sendid = 0
  170. s_sendmx[1].revname = arg_mailaddress
  171. s_sendmx[1].revaddress = arg_mailaddress
  172. IF obj_email.f_save(s_send,s_sendmx,s_lvfj,arg_msg) = 0 THEN
  173. rslt = 0
  174. GOTO ext
  175. END IF
  176. // 保存成功 发送
  177. string ls_run
  178. ls_run = 'longjoe_rev.exe -longjoe&'&
  179. + sys_system_id + '&'&
  180. + sys_cur_version + '&'&
  181. + String(sys_if_register) + '&'&
  182. + Commit_Tran.Database + '&'&
  183. + Commit_Tran.UserID + '&'&
  184. + f_psw_bczh(Commit_Tran.DBPass,0,sys_power_key) + '&'&
  185. + Commit_Tran.LogID + '&'&
  186. + f_psw_bczh(Commit_Tran.LogPass,0,sys_power_key) + '&'&
  187. + Commit_Tran.ServerName + '&'&
  188. + string(sys_empid) + '&'&
  189. + string(s_send.mailid) + '&'&
  190. + '1&'&
  191. + fj_tran.Database + '&'&
  192. + fj_tran.UserID + '&'&
  193. + f_psw_bczh(fj_tran.DBPass,0,sys_power_key) + '&'&
  194. + fj_tran.LogID + '&'&
  195. + f_psw_bczh(fj_tran.LogPass,0,sys_power_key) + '&'&
  196. + fj_tran.ServerName + '&'&
  197. + string(s_send.sendid) + '&'
  198. IF Run(sys_cur_path + ls_run) = -1 THEN
  199. rslt = 0
  200. arg_msg = '运行程序失败!'
  201. goto ext
  202. END IF
  203. ext:
  204. destroy obj_email
  205. return rslt
  206. end function