zoukankan      html  css  js  c++  java
  • Laravel 5.8 做个知乎 16 —— 用户关注 发送自定义的邮件通知

    1 新建频道

    1.1 appChannelsSendcloudChannel.php

    <?php
    /**
     * Created by PhpStorm.
     * User: SUN
     * Date: 2021/8/1
     * Time: 3:42
     */
    namespace AppChannels;
    
    use IlluminateNotificationsNotification;
    
    /**
     * 自定义channels
     */
    class SendcloudChannel
    {
        public function send($notifiable, Notification $notification)
        {
            $message = $notification->toSendcloud($notifiable,$notification);
        }
        
    }

    2 添加频道

    2.1 appNotificationsNewUserFollowNotinfication.php

    <?php
    
    namespace AppNotifications;
    
    
    use IlluminateBusQueueable;
    use IlluminateNotificationsNotification;
    use IlluminateContractsQueueShouldQueue;
    use IlluminateNotificationsMessagesMailMessage;
    use IlluminateSupportFacadesAuth;
    use IlluminateSupportFacadesMail;
    use NauxMailSendCloudTemplate;
    use AppChannelsSendcloudChannel;
    
    
    
    
    
    class NewUserFollowNotinfication extends Notification
    {
        use Queueable;
    
        /**
         * Create a new notification instance.
         *
         * @return void
         */
        public function __construct()
        {
            //
        }
    
        /**
         * Get the notification's delivery channels.
         *
         * @param  mixed  $notifiable
         * @return array
         */
        public function via($notifiable)
        {
            //        return ['mail'];   //邮件通知
            return ['database',SendcloudChannel::class]; //站内信
        }                      
        
        
        
        
      
        
        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);
            });
        
        
        
            
            
            
        }
        
        public function toDatabase($notifiable)
        {
            return [
              'name'=> Auth::guard('api')->user()->name,
            
            ];
        }
    
        /**
         * Get the mail representation of the notification.
         *
         * @param  mixed  $notifiable
         * @return IlluminateNotificationsMessagesMailMessage
         */
        public function toMail($notifiable)
        {
            return (new MailMessage)
                        ->line('The introduction to the notification.')
                        ->action('Notification Action', url('/'))
                        ->line('Thank you for using our application!');
        }
    
        /**
         * Get the array representation of the notification.
         *
         * @param  mixed  $notifiable
         * @return array
         */
        public function toArray($notifiable)
        {
            return [
                //
            ];
        }
    }
    View Code

    3 添加邮件模板

  • 相关阅读:
    向量求导几则公式备忘
    电脑硬件接触不良
    caffe编译新问题
    faster-rcnn 目标检测 数据集制作
    py-faster-rcnn 的makefile.config 注意事项
    ubuntu14.04 python + opencv 傻瓜式安装解决方案
    轻量级神经网络平台tiny-dnn实践
    OpenMP 并行编程
    React在Render中使用bind可能导致的问题
    为了cider,尝试emacs的坑
  • 原文地址:https://www.cnblogs.com/polax/p/15088291.html
Copyright © 2011-2022 走看看