queue = 'echomail'; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [ self::via ]; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return Echomail * @throws \Exception */ abstract public function toEchomail(object $notifiable): Echomail; protected function setupEchomail(Message $mo,object $notifiable): Echomail { $echoarea = $notifiable->routeNotificationFor(static::via); $eo = Echoarea::where('name',$echoarea)->singleOrFail(); $o = new Echomail; $o->init(); $o->from = Setup::PRODUCT_NAME; $o->replyid = $mo->msgid; $o->echoarea_id = $eo->id; $o->datetime = Carbon::now(); $o->tzoffset = $o->datetime->utcOffset(); $o->fftn_id = ($x=our_address($mo->fboss_o->zone->domain,$mo->fboss_o))->id; $o->flags = (Message::FLAG_LOCAL); $o->tearline = sprintf('%s (%04X)',Setup::PRODUCT_NAME,Setup::PRODUCT_ID); $o->origin = sprintf('%s (%s)',Setup::PRODUCT_NAME,$x->ftn4d); $o->kludges = collect(['chrs'=>$mo->kludge->get('chrs') ?: 'CP437 2']); return $o; } }