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 添加邮件模板

  • 相关阅读:
    自定义行操作事件——DataGrid系列
    分页样式——DataGrid系列
    勾选批量操作——DataGrid系列
    快速排序的基本实现
    2021/06--09学习情况一些总结和反思
    IntegerCache的一些联想
    Hibernate, Jpa, Spring Data Jpa的关系与区别
    Springboot+Hibernate+Transactional中save提交引发的db异常无法捕获
    一个涉及多系统多步骤的业务需求设计与思考
    Use SQL to query dataverse
  • 原文地址:https://www.cnblogs.com/polax/p/15088291.html
Copyright © 2011-2022 走看看