| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | <?phpnamespace App\Services\Common;use App\Jobs\EmailJob;use Illuminate\Support\Facades\Cache;/** * 邮件服务. * Class EMailService * @package App\Services\Common */class EmailService{    /**     *邮箱测试     */    const TEMPLATE_TEST="mail_test";    /**     *邮箱验证     */    const TEMPLATE_VALIDATION="mail_vaildation";    /**     *邮箱重置密码     */    const TEMPLATE_PASSWORD_RESET="mail_password_reset";    /**     * 发送简历到邮箱     */    const  TEMPLATE_SEND_RESUME = 'mail_send_resume';    /**     * 发送自定义内容邮件     */    const  TEMPLATE_SEND_CONTENT = 'mail_send_content';    /**     * 招聘会预订成功     */    const  TEMPLATE_JOBFAIR_APPLY_OK = 'mail_jobfair_apply_ok';    /**     * 招聘会预定失败     */    const  TEMPLATE_JOBFAIR_APPLY_ERROR = 'mail_jobfair_apply_error';    /**     * 邀请面试     */    const  TEMPLATE_INVITE_INTERVIEWS = 'mail_invite';    /**     * 职位审核未通过     */    const  TEMPLATE_MAIL_JOBSNOTALLOW = 'mail_jobsnotallow';    /**     * 职位审核通过     */    const  TEMPLATE_MAIL_JOBSALLOW = 'mail_jobsallow';    /**     * @var array     */    protected $callback;    /**     * @var string     */    protected $authTag;    protected $check_route;    /**     * SmsService constructor.     */    public function __construct()    {        $this->callback = [];        $this->authTag='none';        $this->check_route="email.check";    }    /**     * 发送邮件     * @param \Eloquent|string $email     * @param string $templateId     * @param array $titleParams     * @param array $contentParams     */    public function sendMail($email, string $templateId, array $titleParams = [], array $contentParams = [])    {        $emailJob=new EmailJob($email, $templateId, $titleParams, $contentParams);        $emailJob->setCallback($this->callback);        dispatch($emailJob);    }    /**     * 发送确认邮件     * @param \Eloquent|string $email     * @param string $templateId     */    public function sendAuthMail($email, string $templateId)    {        $emailJob=new EmailJob($email, $templateId, [], [], true);        $emailJob->setCallback($this->callback);        $emailJob->setTag($this->authTag);        $emailJob->setCheckRoute($this->check_route);        dispatch($emailJob);    }    /**     * 根据邮箱code返回缓存信息,如果存在则包含email,邮件模板alias两个字段     * @param string $code     * @return null|array     */    public function checkAuthEmail(string $code)    {        $result=Cache::pull($code, null);        return $result;    }    /**     * 批量发送短信     * @param array $mobiles     * @param string $templateId     * @param array $params     */    public function sendBatchSms(array $mobiles, string $templateId, array $params = [])    {        //    }    /**     * @param string $obj     * @param string $method     * @param array $args     * @return EmailService     */    public function setCallback(string $obj, string $method, array $args)    {        $this->callback[]=[$obj, $method];        $this->callback[]=$args;        return $this;    }    public function setAuthTag(string $tag)    {        $this->authTag=$tag;        return $this;    }    /**     * @param string $check_route     * @return EmailService     */    public function setCheckRoute(string $check_route)    {        $this->check_route = $check_route;        return $this;    }}
 |