Send_email2_adminAction.class.lijg.20200529.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. /**
  3. * 邮件发送,普通发送,使用xsmtpapi发送
  4. */
  5. require_once( ONU_ROOT . 'application/module/ctrl/Action.class.php');
  6. require_once ( ONU_ROOT . 'application/lib/data/adminAction.php');
  7. header('content-Type: text/html; charset=utf-8');
  8. class Send_email2_adminAction extends Action{
  9. public function __construct(){
  10. parent::__construct();
  11. if(empty($_SESSION['mds_user'])){
  12. header("Location:/?a=index&m=admin_login");
  13. exit();
  14. }
  15. }
  16. public function index(){
  17. $api_user = $_SESSION['API_USER'];
  18. $api_key = $_SESSION['API_KEY'];
  19. $from = $_SESSION['FROM'];
  20. $info = $_REQUEST['info'];
  21. $uid = $_SESSION['user_infos']['id'];
  22. $post_url = 'http://api.sendcloud.net/apiv2/mail/send';
  23. $fromName = '';
  24. switch($uid){
  25. case 6:
  26. $fromName = 'SuperNova Hair';
  27. break;
  28. case 1:
  29. $fromName = 'Alipearl Hair';
  30. break;
  31. case 3:
  32. $fromName = 'Westkiss Hair';
  33. break;
  34. case 4:
  35. $fromName = 'Wiggins Hair';
  36. break;
  37. case 5:
  38. $fromName = 'Asteria Hair';
  39. break;
  40. case 7:
  41. $fromName = 'Yolissa Hair';
  42. break;
  43. case 8:
  44. $fromName = 'Mellow Hair';
  45. break;
  46. }
  47. $admin = new AdvertAdminAction();
  48. //查询所有的邮件模板
  49. $where = "where uid='{$_SESSION['user_infos']['id']}' and type=1 and status=1";
  50. $template_list = $admin->select_msg_list($where);
  51. //查询所有的用户分组
  52. $where2 = "where uid='$uid' ";
  53. $group_list = $admin->select_user_group($where2);
  54. $where3 = "where uid='$uid'";
  55. if(!empty($_POST['group_name']) && $_POST['group_name']!='all'){
  56. $where3.=" and group_name='{$_POST['group_name']}'";
  57. }
  58. $customer_list = $admin->selesctCustomer($where3);
  59. $count = count($customer_list);
  60. //假设一次只能给100个人发,看需要发几次
  61. $c = 100;
  62. $p = ceil($count/100);//需要发总次数
  63. if($_POST['template_id']){
  64. $id = $_POST['template_id'];
  65. $one_info = $admin->select_one_template($id);
  66. $subject = $one_info['msg_title'];
  67. $content = $one_info['msg_content'];
  68. $replyto = $_SESSION['user_infos']['email'];//发件人邮箱地址
  69. for($i=1;$i<=$p;$i++){
  70. $min = $c*($i-1);
  71. $max = $c*$i;
  72. $x_smtpapi = array();
  73. foreach($customer_list as $key=>$list){
  74. if($key>=$min && $key<$max){
  75. $x_smtpapi['to'][] = trim($list['email']);
  76. $user_name = $list['uname'];
  77. $x_smtpapi['sub']['%name%'][] = $user_name;
  78. }
  79. }
  80. $x_smtpapi = json_encode($x_smtpapi);
  81. $x_smtpapi = str_replace("\ufeff","",$x_smtpapi);
  82. $x_smtpapi = str_replace("\u00a0","",$x_smtpapi);
  83. $params = array(
  84. 'apiUser' => $api_user,
  85. 'apiKey' => $api_key,
  86. 'xsmtpapi' => $x_smtpapi,
  87. 'from' => $from,
  88. 'subject' => $subject,
  89. 'html' => $content,
  90. 'fromName' => $fromName,
  91. 'replyto' => $replyto
  92. );
  93. //var_dump($params);exit;
  94. $result = make_curl($post_url,$params);
  95. //插入 普通邮件发送日志表
  96. $params['uid'] = $uid;
  97. $params['message'] = $result['message'];
  98. $params['time'] = time();
  99. $params['to'] = $params['xsmtpapi'];
  100. $insert_log = $admin->inserEmail1Log($params);
  101. }
  102. $info = $result['message'];
  103. header("Location:/?a=send_email2_admin&m=index&info=$info");
  104. exit();
  105. }
  106. $this->assign('group_list',$group_list);
  107. $this->assign('info',$info);
  108. $this->assign('template_list',$template_list);
  109. $this->display("index.html");
  110. }
  111. // class end
  112. }
  113. ?>