mailsend.php 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. // by 请勿倒卖,已申请软著,否则追究法律责任
  3. namespace app\admin;
  4. class mailsend extends Base
  5. {
  6. public function initialize()
  7. {
  8. parent::initialize();
  9. $this->Administrator(5);
  10. set_time_limit(0);
  11. }
  12. function index()
  13. {
  14. $this->header();
  15. ?> <div class="container">
  16. <?php
  17. $this->nav3();
  18. ?> <table class="tb tb2">
  19. <tr>
  20. <th class="partition">技巧提示</th>
  21. </tr>
  22. <tr>
  23. <td class="tipsblock">
  24. <ul>
  25. <li>请先选择好筛选条件,再发送,不要频繁发送大量邮件,以免被封邮箱账号。</li>
  26. <li>标题和内容支持变量:{uname}=>用户名,{email}=>邮箱,{mobile}=>手机,{nickname}=>姓名,{qyname}=>公司名称</li>
  27. </ul>
  28. </td>
  29. </tr>
  30. </table>
  31. <div class="infobox" id="loader" style="display:none;"></div>
  32. <table class="tb tb2">
  33. <tbody>
  34. <tr>
  35. <td class="td27">发送条件:</td>
  36. </tr>
  37. <tr>
  38. <td class="vtop rowform">
  39. <select name="sendtype" id="sendtype">
  40. <option value="1">邮件地址</option>
  41. <option value="2">全部会员</option>
  42. <option value="3">会员搜索</option>
  43. </select>
  44. </td>
  45. <td class="vtop tips2"></td>
  46. </tr>
  47. <tbody class="sub">
  48. <tr>
  49. <td colspan="2" class="td27">邮件地址:</td>
  50. </tr>
  51. <tr>
  52. <td class="rowform"><input type="text" class="txt" value="" name="mailto" id="mailto"></td>
  53. <td class="tips2">直接填写收件邮箱</td>
  54. </tr>
  55. <tr>
  56. <td class="td27">查询条件:</td>
  57. </tr>
  58. <tr>
  59. <td class="rowform" colspan="3">
  60. <select name="verify" id="verify">
  61. <option value="">认证状态</option>
  62. <option value="1">未认证</option>
  63. <option value="2">已认证</option>
  64. <option value="3">认证中</option>
  65. <option value="4">认证失败</option>
  66. </select>
  67. <select name="svip" id="svip">
  68. <option value="">会员类型</option>
  69. <option value="1">体验会员</option>
  70. <option value="2">初级会员</option>
  71. <option value="3">中级会员</option>
  72. <option value="4">高级会员</option>
  73. </select>
  74. </td>
  75. </tr>
  76. </tbody>
  77. <tr>
  78. <td class="td27" colspan="2">标题:</td>
  79. </tr>
  80. <tr>
  81. <td class=" rowform"><input type="text" class="txt" value="【<?php echo IN_NAME;?>】提醒:"
  82. name="mailtit"
  83. id="mailtit"></td>
  84. <td class=" tips2">邮件标题</td>
  85. </tr>
  86. <tr>
  87. <td class="td27" colspan="2">内容:</td>
  88. </tr>
  89. <tr>
  90. <td class=" rowform">
  91. <textarea rows="6" name="mailbody" class="tarea" id="mailbody"></textarea>
  92. </td>
  93. <td class=" tips2">邮件正文内容,支持html</td>
  94. </tr>
  95. <tr>
  96. <td colspan="2"><input type="button" class="btn" value="开始发送" onclick="start_send();"></td>
  97. </tr>
  98. </tbody>
  99. </table>
  100. </div>
  101. <script>
  102. function start_send() {
  103. var sendtype = document.getElementById("sendtype").value;
  104. var mailto = document.getElementById("mailto").value;
  105. var svip = document.getElementById("svip").value;
  106. var verify = document.getElementById("verify").value;
  107. var mailtit = document.getElementById("mailtit").value;
  108. var mailbody = document.getElementById("mailbody").value;
  109. if (sendtype == 1 && !mailto) {
  110. layer.msg("收件人没有填写", {icon: 1, time: 2000});
  111. return;
  112. }
  113. if (sendtype == 3 && !verify && !svip) {
  114. layer.msg("请选择认证状态或者会员类型", {icon: 1, time: 2000});
  115. return;
  116. }
  117. if (!mailtit || !mailbody) {
  118. layer.msg("标题和内容不能为空", {icon: 1, time: 2000});
  119. return;
  120. }
  121. var data = {
  122. sendtype: sendtype,
  123. mailto: mailto,
  124. svip: svip,
  125. verify: verify,
  126. mailtit: mailtit,
  127. mailbody: mailbody,
  128. }
  129. ajax_send(data, 1);
  130. }
  131. function ajax_send(data, page) {
  132. $("#loader").show();
  133. $.post("?c=mailsend&a=dosend&page=" + page, data, function (result) {
  134. if (result.code == 1) {
  135. $("#loader").html('<h4 class="infotitle2">恭喜,邮件已经发送完毕!</h4>');
  136. } else {
  137. $("#loader").html('<h4 class="infotitle1">已发送' + page + '/' + result.data.totalpage + ',请稍等...</h4><img src="/static/admincp/image/loader.gif" class="marginbot" />');
  138. ajax_send(data, page + 1);
  139. }
  140. }, 'json');
  141. }
  142. </script>
  143. <?php
  144. $this->footer();
  145. }
  146. function dosend()
  147. {
  148. $_var_0 = SafeRequest("sendtype", "post");
  149. $_var_1 = SafeRequest("mailto", "post");
  150. $_var_2 = SafeRequest("svip", "post");
  151. $_var_3 = SafeRequest("verify", "post");
  152. $_var_4 = SafeRequest("mailtit", "post");
  153. $_var_5 = SafeRequest("mailbody", "post");
  154. $_var_5 .= "<br>本邮件由系统自动发送,请勿直接回复。官方网址:" . $this->siteurl;
  155. $_var_6 = array("{uname}", "{email}", "{mobile}", "{nickname}", "{qyname}");
  156. if ($_var_0 == 1) {
  157. $_var_7 = db("user")->where("in_mail", $_var_1)->find();
  158. if ($_var_7) {
  159. $_var_8 = array($_var_7["in_username"], $_var_7["in_mail"], $_var_7["in_mobile"], $_var_7["in_nick"], $_var_7["in_nameqy"]);
  160. $_var_4 = str_replace($_var_6, $_var_8, $_var_4);
  161. $_var_5 = str_replace($_var_6, $_var_8, $_var_5);
  162. }
  163. $_var_9 = send_email($_var_1, $_var_4, $_var_5);
  164. reJSON("发送成功!", 1);
  165. } elseif ($_var_0 == 2) {
  166. $_var_10 = db("user")->where("in_mail<>''")->count();
  167. $_var_11 = 10;
  168. $_var_12 = isset($_GET["page"]) ? $_GET["page"] : 1;
  169. $_var_13 = ceil($_var_10 / $_var_11);
  170. $_var_14 = ($_var_12 - 1) * $_var_11;
  171. $_var_15 = db("user")->where("in_mail<>''")->order("in_userid desc")->limit($_var_14, $_var_11)->select();
  172. foreach ($_var_15 as $_var_7) {
  173. $_var_8 = array($_var_7["in_username"], $_var_7["in_mail"], $_var_7["in_mobile"], $_var_7["in_nick"], $_var_7["in_nameqy"]);
  174. $_var_4 = str_replace($_var_6, $_var_8, $_var_4);
  175. $_var_5 = str_replace($_var_6, $_var_8, $_var_5);
  176. send_email($_var_7["in_mail"], $_var_4, $_var_5);
  177. }
  178. if ($_var_12 == $_var_13) {
  179. reJSON("发送成功!", 1);
  180. } else {
  181. reJSON(["totalpage" => $_var_13]);
  182. }
  183. } elseif ($_var_0 == 3) {
  184. $_var_16 = "in_mail<>''";
  185. if ($_var_3 > 0) {
  186. $_var_16 .= " and in_verify=" . $_var_3 . "-1";
  187. }
  188. if ($_var_2 > 0) {
  189. $_var_16 .= " and in_svip=" . $_var_2 . "-1";
  190. }
  191. $_var_10 = db("user")->where($_var_16)->count();
  192. $_var_11 = 10;
  193. $_var_12 = isset($_GET["page"]) ? $_GET["page"] : 1;
  194. $_var_13 = ceil($_var_10 / $_var_11);
  195. $_var_14 = ($_var_12 - 1) * $_var_11;
  196. $_var_15 = db("user")->where($_var_16)->order("in_userid desc")->limit($_var_14, $_var_11)->select();
  197. foreach ($_var_15 as $_var_7) {
  198. $_var_8 = array($_var_7["in_username"], $_var_7["in_mail"], $_var_7["in_mobile"], $_var_7["in_nick"], $_var_7["in_nameqy"]);
  199. $_var_4 = str_replace($_var_6, $_var_8, $_var_4);
  200. $_var_5 = str_replace($_var_6, $_var_8, $_var_5);
  201. send_email($_var_7["in_mail"], $_var_4, $_var_5);
  202. }
  203. if ($_var_12 == $_var_13) {
  204. reJSON("发送成功!", 1);
  205. } else {
  206. reJSON(["totalpage" => $_var_13]);
  207. }
  208. }
  209. }
  210. }