Files
tougao/application/api/job/domail.php
2022-04-06 17:14:44 +08:00

106 lines
3.1 KiB
PHP

<?php
namespace app\api\job;
use think\Db;
use think\Log;
use think\queue\Job;
class domail {
public function fire(Job $job, $data) {
// $this->send($data);
// $job->delete();
// 发送邮件
$isJobDone = $this->doTask($data);
// 删除
$job->delete();
//入库
$this->insertData($data,$isJobDone);
}
/**
* 发送邮件
* @param $data
* @return array
*/
public function doTask($data){
if(isset($data['attachment_url']) && !empty($data['attachment_url']) ){
$res = sendEmail($data['email'],$data['title'],$data['from_name'],$data['content'],$data['sendEmail'],$data['sendPassword'],$data['attachment_url']);
}else{
$res = sendEmail($data['email'],$data['title'],$data['from_name'],$data['content'],$data['sendEmail'],$data['sendPassword']);
}
return $res;
}
/**
* email记录入库
* @param $data
* @param $isJobDone
*/
public function insertData($data,$isJobDone)
{
$insert = [
'title' => $data['title'],
'content' => $data['content'],
'recive_id' => $data['user_id'],
'recive_email' => $data['email'],
'journal_id' => $data['journal_id'],
'journal_email' => $data['sendEmail'],
'journal_password' => $data['sendPassword'],
'create_time' => time()
];
if (isset($data['attachment_url']) && !empty($data['attachment_url'])) {
$insert['is_attachment'] = 1;
$insert['attachment_url'] = $data['attachment_url'];
}
if($isJobDone['status']==0){
$insert['is_success'] = 0;
$insert['fail_reason'] = $isJobDone['data'];
}
Db::name('email')->insert($insert);
}
/**
* 发送邮件的逻辑
* @param type $data
*/
public function send($data){
$insert = [
'title'=>$data['title'],
'content'=>$data['content'],
'recive_id'=>$data['user_id'],
'recive_email'=>$data['email'],
'journal_id'=>$data['journal_id'],
'journal_email'=>$data['sendEmail'],
'journal_password'=>$data['sendPassword'],
'create_time'=>time()
];
if(isset($data['attachment_url']) && !empty($data['attachment_url']) ){
$res = sendEmail($data['email'],$data['title'],$data['from_name'],$data['content'],$data['sendEmail'],$data['sendPassword'],$data['attachment_url']);
$insert['is_attachment'] = 1;
$insert['attachment_url'] = $data['attachment_url'];
}else{
$res = sendEmail($data['email'],$data['title'],$data['from_name'],$data['content'],$data['sendEmail'],$data['sendPassword']);
}
if($res['status']==1){
Db::name('email')->insert($insert);
return true;
}else{
$insert['is_success'] = 0;
$insert['fail_reason'] = $res['data'];
Db::name('email')->insert($insert);
return false;
}
}
}