|
@@ -10,6 +10,7 @@ use Model\bodySql; |
|
@@ -10,6 +10,7 @@ use Model\bodySql; |
10
|
use Model\emailSql;
|
10
|
use Model\emailSql;
|
11
|
use Model\folderSql;
|
11
|
use Model\folderSql;
|
12
|
use Model\listsSql;
|
12
|
use Model\listsSql;
|
|
|
13
|
+use Model\sendJobsSql;
|
13
|
use PHPMailer\PHPMailer\PHPMailer;
|
14
|
use PHPMailer\PHPMailer\PHPMailer;
|
14
|
use PHPMailer\PHPMailer\SMTP;
|
15
|
use PHPMailer\PHPMailer\SMTP;
|
15
|
|
16
|
|
|
@@ -228,9 +229,19 @@ class Home extends Base { |
|
@@ -228,9 +229,19 @@ class Home extends Base { |
228
|
$sendData['priority'] = $formData['priority']??3;// 是否紧急邮件
|
229
|
$sendData['priority'] = $formData['priority']??3;// 是否紧急邮件
|
229
|
$sendData['subject'] = $formData['subject'];// //Content 主题,标题
|
230
|
$sendData['subject'] = $formData['subject'];// //Content 主题,标题
|
230
|
$sendData['body'] = $formData['body'];
|
231
|
$sendData['body'] = $formData['body'];
|
|
|
232
|
+ // 不重要的信息
|
|
|
233
|
+ $sendData['jobName'] = $formData['jobName']??'';//任务标题
|
|
|
234
|
+ $sendData['massSuit'] = $formData['massSuit']??0;// 是否是群发单显
|
231
|
|
235
|
|
232
|
// 定时发送时间
|
236
|
// 定时发送时间
|
233
|
- $timer = strtotime(app()->request('timerValue','2023-04-10'));
|
237
|
+ $timer = app()->request('timerValue',0);
|
|
|
238
|
+ if(is_numeric($timer) && $timer){
|
|
|
239
|
+ $timer = time()+$timer;
|
|
|
240
|
+ }else if (is_string($timer)){
|
|
|
241
|
+ $timer = strtotime($timer);
|
|
|
242
|
+ }else{
|
|
|
243
|
+ $timer = 0;
|
|
|
244
|
+ }
|
234
|
// 是否存草稿
|
245
|
// 是否存草稿
|
235
|
if(app()->request('saveType')=='draft'){
|
246
|
if(app()->request('saveType')=='draft'){
|
236
|
// 保存
|
247
|
// 保存
|
|
@@ -242,15 +253,37 @@ class Home extends Base { |
|
@@ -242,15 +253,37 @@ class Home extends Base { |
242
|
app()->e('save_draft_error');
|
253
|
app()->e('save_draft_error');
|
243
|
|
254
|
|
244
|
}
|
255
|
}
|
245
|
- // 定时发送
|
|
|
246
|
- else if(app()->request('timer') && $timer > time()){
|
256
|
+ // 定时发送 或者是单条发送
|
|
|
257
|
+ else if((app()->request('timer') && $timer > time()) || $sendData['massSuit']){
|
247
|
|
258
|
|
248
|
- }else{
|
|
|
249
|
- // 发送
|
|
|
250
|
-// $result = MailFun::sendEmail($sendData,$email);
|
|
|
251
|
-// if($result[0]){
|
|
|
252
|
-// app()->_json(['messageId' => $result[1]]);
|
|
|
253
|
-// }
|
259
|
+ if($sendData['massSuit']){
|
|
|
260
|
+ // 每次发送间隔的时间
|
|
|
261
|
+ $sendData['masssuit_interval_send'] = app()->request('masssuit_interval_send');
|
|
|
262
|
+ $sendData['masssuit_interval_send']['start'] = intval($sendData['masssuit_interval_send']['start']??0);
|
|
|
263
|
+ $sendData['masssuit_interval_send']['end'] = intval($sendData['masssuit_interval_send']['end']??1);
|
|
|
264
|
+ }
|
|
|
265
|
+
|
|
|
266
|
+ // 插入任务
|
|
|
267
|
+ $job_id = db()->insert(sendJobsSql::$table,[
|
|
|
268
|
+ 'email_id' => $email['id'],
|
|
|
269
|
+ 'maildata' => $sendData,
|
|
|
270
|
+ 'title' => $sendData['jobName'] ? : $sendData['subject'],
|
|
|
271
|
+ 'total' => count($sendData['tos']),
|
|
|
272
|
+ 'send_time' => $timer
|
|
|
273
|
+ ]);
|
|
|
274
|
+ if($job_id){
|
|
|
275
|
+ // 返回任务id
|
|
|
276
|
+ app()->_json(['job_id'=>$job_id]);
|
|
|
277
|
+ }
|
|
|
278
|
+
|
|
|
279
|
+ app()->e('send_timer_job_error');
|
|
|
280
|
+ }
|
|
|
281
|
+ else{
|
|
|
282
|
+ // 立即发送
|
|
|
283
|
+ $result = MailFun::sendEmail($sendData,$email);
|
|
|
284
|
+ if($result[0]){
|
|
|
285
|
+ app()->_json(['messageId' => $result[1]]);
|
|
|
286
|
+ }
|
254
|
// 错误
|
287
|
// 错误
|
255
|
app()->e($result[1]);
|
288
|
app()->e($result[1]);
|
256
|
}
|
289
|
}
|
|
@@ -490,7 +523,9 @@ class Home extends Base { |
|
@@ -490,7 +523,9 @@ class Home extends Base { |
490
|
|
523
|
|
491
|
if($data){
|
524
|
if($data){
|
492
|
$sync_num = 0;
|
525
|
$sync_num = 0;
|
493
|
- $data['to_name'] = json_decode($data['to_name']??"[]",true);
|
526
|
+ $data['to_name'] = $data['to_name'] ? json_decode($data['to_name'],true) : [];
|
|
|
527
|
+ $data['cc'] = $data['cc'] ? json_decode($data['cc'],true) : [];
|
|
|
528
|
+ $data['bcc'] = $data['bcc'] ? json_decode($data['bcc'],true) : [];
|
494
|
|
529
|
|
495
|
HOME_INFO_BODY:
|
530
|
HOME_INFO_BODY:
|
496
|
$body = db()->first(bodySql::first($id));
|
531
|
$body = db()->first(bodySql::first($id));
|
|
@@ -551,9 +586,15 @@ class Home extends Base { |
|
@@ -551,9 +586,15 @@ class Home extends Base { |
551
|
return [
|
586
|
return [
|
552
|
'data' => $data
|
587
|
'data' => $data
|
553
|
];
|
588
|
];
|
|
|
589
|
+ }// 草稿
|
|
|
590
|
+ else if(!$data['uid'] && $data['draft']){
|
|
|
591
|
+ $data['body'] = [];
|
|
|
592
|
+ return [
|
|
|
593
|
+ 'data' => $data
|
|
|
594
|
+ ];
|
554
|
}
|
595
|
}
|
555
|
// 循环几次
|
596
|
// 循环几次
|
556
|
- if($sync_num < 1){
|
597
|
+ if($data['uid']&&$sync_num < 1){
|
557
|
$mail = new Mail($email['email'],base64_decode($email['password']),$email['imap']);
|
598
|
$mail = new Mail($email['email'],base64_decode($email['password']),$email['imap']);
|
558
|
|
599
|
|
559
|
if($mail->login()){
|
600
|
if($mail->login()){
|