小白兔晒黑了

导航

 

1 类

1.1 \app\Mailer\Mailer.php 基类

<?php
/**
 * Created by PhpStorm.
 * User: SUN
 * Date: 2021/8/2
 * Time: 18:23
 */
namespace App\Mailer;
use Naux\Mail\SendCloudTemplate;
use Illuminate\Support\Facades\Mail;

class Mailer
{
    
    /**
     * @param       $template 邮件模板
     * @param       $email    邮件地址
     * @param array $data    传递参数
     */
   public function sendTo($template,$email, array $data)
   {
       //模板地址
       //https://www.sendcloud.net/email/#/sendAround/template
       $content = new SendCloudTemplate($template,$data);
       Mail::raw($content,function ($message) use ($email){
           $message->from(env('SEND_CLOUD_FROM'),'知乎管理员');
           $message->to($email);
       });
   }
}
View Code

1.2 继承基类  \app\Mailer\UserMailer.php

<?php
/**
 * Created by PhpStorm.
 * User: SUN
 * Date: 2021/8/2
 * Time: 20:33
 */
namespace  app\Mailer;
use Illuminate\Support\Facades\Auth;

class UserMailer extends Mailer
{
    public function followNotifyEmail($email)
    {
        $data = [
          'url' => url(config('app.url')),
          'name' => Auth::guard('api')->user()->name
        ];
        $this->sendTo('zhihu_app_new_user_follow',$email,$data);
    }
    
    public  function  passwordReset($email,$token)
    {
        $data = [
          'url'=>route('password.reset',['token'=>$token])
        ];
        $this->sendTo('zhihu_app_password_reset',$email,$data);
    }
    
    //https://www.sendcloud.net/email/#/sendAround/template
    public function welcome(User $user)
    {
        $data = [
          'url'=>route('email.verify',['token'=>$user->activation_token])
        ];
        $this->sendTo('test_template_active',$user->email,$data);
    }


}
View Code

2 使用

2.1 \app\Notifications\NewUserFollowNotinfication.php 用户关注发通知

    public function toSendcloud($notifiable)
    {
        //模板地址
        //https://www.sendcloud.net/email/#/sendAround/template
        /*$data = [
          'url' => url(config('app.url')),
          'name' => Auth::guard('api')->user()->name
        ];
        
        //test_template 邮件模板
        $template = new SendCloudTemplate('zhihu_app_new_user_follow',$data);
        Mail::raw($template,function ($message) use ($notifiable){
            $message->from(env('SEND_CLOUD_FROM'),'知乎管理员');
            $message->to($notifiable->email);
        });*/
        (new UserMailer())->sendTo($notifiable->email);
        
    }

2.2 \app\Http\Controllers\Auth\RegisterController.php用户注册发通知

    private function sendVerifyEmailTo($user)
    {
        (new UserMailer())->welcome( $user);
    }

2.3  \app\User.php 重置密码

    public function sendPasswordResetNotification($token)
    {
        (new UserMailer())->passwordReset($this->email,$token);
    }

 

posted on 2021-08-02 21:04  小白兔晒黑了  阅读(45)  评论(0)    收藏  举报