message->getChildren() as $attachment) { if ($attachment instanceof \Swift_Attachment) { $attachments[] = $attachment->getFilename(); } } $data = []; $headers = $event->message->getHeaders(); if ($headers->has('X-Event-Data')) { $data = json_decode($headers->get('X-Event-Data')->getFieldBody(), true); } $response = [ 'to' => $this->getTo($event), 'from' => $this->getFrom($event), 'subject' => $event->message->getSubject(), 'body_text' => $this->getMessage($event), 'data' => $data, 'attachment' => implode(',', $attachments) ]; SMSLogs::insertGetId(['mobile_number'=>'-','message'=>$response['body_text'],'request_url'=>'','provider'=>'ses','response'=>json_encode($response),'_id'=>$data['id'],'id_type'=>$data['id_type'],'created_by'=>$data['a_id'],'created_at'=>Carbon::now()->toDateTimeString(), 'isWhatsapp' => 0, 'tracking_id' => $data['scf_tracker_id'], 'read' => 0, 'sent' => 1, 'attachment' => strlen($response['attachment']) ? 1 : 0]); } private function getTo($event){ $to = $event->message->getTo(); $address = []; if ($to) { $address = array_keys($to); } return implode(',', $address); } private function getFrom($event){ $from = $event->message->getFrom(); $address = []; if ($from) { $address = array_keys($from); } return implode(',', $address); } public function addTextHeader($data = []){ $data['a_id'] = Auth::check() ? Auth::user()->id: 107; $data['scf_tracker_id'] = $this->scf_tracker_id; return json_encode($data); } public function getBody($body){ //self::getTrackerLink(); //$body['scf_tracker_link'] = $this->scf_tracker_link; return $body; } private function getTrackerLink(){ $this->scf_tracker_id = self::generateRandomString(); $this->scf_tracker_link = self::$base_link.$this->scf_tracker_id; } private static function generateRandomString() { $characters = 'abcdefghijklmnopqrstuvwxyz0123456789'; $randomString = ''; for ($i = 0; $i < 24; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return implode('-', str_split($randomString, 4)); } private function getMessage($event){ $message = $event->message; $plainTextBody = null; foreach ($message->getChildren() as $part) { if ($part instanceof \Swift_Mime_SimpleMimeEntity && $part->getContentType() === 'text/plain') { $plainTextBody = $part->getBody(); break; } } if (!$plainTextBody) { $plainTextBody = strip_tags($message->getBody()); } return $this->replaceFooter($plainTextBody); } private function replaceFooter($message){ $message = str_replace("\n", "", $message); $message = trim(str_replace("\t", "", $message)); return strstr($message, 'Regards,', true); } }