/** * SMTP Detail. * * @return \Illuminate\Http\Response */ public function getSMTPDetail($id) { $detalle = SentEmail::find($id); if (!$detalle) { return back(); } return \View('emailTrakingViews::smtp_detail')->with('details', $detalle); }
protected function updateSesMessageId($message) { // Get the SentEmail object $headers = $message->getHeaders(); $hash = $headers->get('X-Mailer-Hash')->getFieldBody(); $sent_email = SentEmail::where('hash', $hash)->first(); // Get info about the $sent_email->message_id = $headers->get('X-SES-Message-ID')->getFieldBody(); $sent_email->save(); }
/** * @test */ public function it_processes_a_complaint() { // Set a track email to use a known message id $track = \jdavidbakr\MailTracker\Model\SentEmail::orderBy('id', 'desc')->first(); $message_id = str_random(32); $track->message_id = $message_id; $track->save(); $this->post(action('\\jdavidbakr\\MailTracker\\SNSController@callback'), ['message' => json_encode(['Message' => json_encode(['notificationType' => 'Complaint', 'mail' => ['timestamp' => \Carbon\Carbon::now()->timestamp, 'messageId' => $message_id, 'source' => $track->sender, 'sourceArn' => str_random(32), 'sendingAccountId' => str_random(10), 'destination' => [$track->recipient]], 'complaint' => ['complainedRecipients' => [['emailAddress' => '*****@*****.**']], 'timestamp' => \Carbon\Carbon::now()->timestamp, 'feedbackId' => str_random(10), 'userAgent' => str_random(10), 'complaintFeedbackType' => 'feedback type', 'arrivalDate' => \Carbon\Carbon::now()]]), 'MessageId' => str_random(10), 'Timestamp' => \Carbon\Carbon::now()->timestamp, 'TopicArn' => str_random(10), 'Type' => 'Notification', 'Signature' => str_random(32), 'SigningCertURL' => str_random(32), 'SignatureVersion' => 1])]); $this->see('notification processed'); $track = $track->fresh(); $meta = $track->meta; $this->assertFalse($meta->get('success')); }
public function process_complaint($message) { $message_id = $message->mail->messageId; $sent_email = SentEmail::where('message_id', $message_id)->first(); if ($sent_email) { $meta = $sent_email->meta; $meta->put('complaint', true); $meta->put('success', false); $meta->put('complaint_time', $message->complaint->timestamp); if (!empty($message->complaint->complaintFeedbackType)) { $meta->put('complaint_type', $message->complaint->complaintFeedbackType); } $sent_email->meta = $meta; $sent_email->save(); } }