diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 91437fc19c..1451f64265 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -6,6 +6,7 @@ use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Routing\Controller as BaseController; use Preferences; +use Session; use View; /** @@ -44,6 +45,13 @@ abstract class Controller extends BaseController View::share('language', $lang); // the user is bouncing email. + $bounce = Preferences::get('bounce', 'notBounced')->data; + if ($bounce != 'notBounced') { + $email = Auth::user()->email; + $message = trans('firefly.bounce_error', ['email' => $email, 'message' => $bounce]); + Session::flash('error', $message); + } + } } } diff --git a/app/Http/Controllers/CronController.php b/app/Http/Controllers/CronController.php index d282231df2..0e29913dd5 100644 --- a/app/Http/Controllers/CronController.php +++ b/app/Http/Controllers/CronController.php @@ -2,6 +2,7 @@ namespace FireflyIII\Http\Controllers; +use FireflyIII\Models\Preference; use FireflyIII\User; /** @@ -28,23 +29,23 @@ class CronController extends Controller $fullURL = $URL . '?' . http_build_query($parameters); $data = json_decode(file_get_contents($fullURL)); $users = []; + echo "
\n";
         // loop the result, if any.
         if (is_array($data)) {
             foreach ($data as $entry) {
                 $address = $entry->email;
-                $users[] = User::where('email', $address);
-
+                $user    = User::where('email', $address)->first();
+                if (!is_null($user)) {
+                    $users[] = $user;
+                    echo "Blocked " . $user->email . " because a message bounced.\n";
 
+                    // create preference:
+                    $preference       = Preference::firstOrCreate(['user_id' => $user->id, 'name' => 'bounce']);
+                    $preference->data = $entry->reason;
+                    $preference->save();
+                }
             }
         }
-
-        /** @var User $user */
-        foreach($users as $user) {
-            if($user) {
-                // block because bounce.
-            }
-        }
-
     }
 
 }
\ No newline at end of file
diff --git a/resources/lang/en/firefly.php b/resources/lang/en/firefly.php
index 8dd038faa6..f6884d8cf7 100644
--- a/resources/lang/en/firefly.php
+++ b/resources/lang/en/firefly.php
@@ -18,6 +18,7 @@ return [
     'showEverything'                   => 'Show everything',
     'never'                            => 'Never',
     'search_results_for'               => 'Search results for ":query"',
+    'bounce_error'                     => 'The message sent to :email bounced.',
 
     // attachments
     'nr_of_attachments'                => 'One attachment|:count attachments',
@@ -26,7 +27,7 @@ return [
     'update_attachment'                => 'Update attachment',
     'delete_attachment'                => 'Delete attachment ":name"',
     'attachment_deleted'               => 'Deleted attachment ":name"',
-    'upload_max_file_size' => 'Maximum file size: :size',
+    'upload_max_file_size'             => 'Maximum file size: :size',
 
     // tour:
     'prev'                             => 'Prev',
diff --git a/resources/lang/nl/firefly.php b/resources/lang/nl/firefly.php
index 163d10486f..9de005c860 100644
--- a/resources/lang/nl/firefly.php
+++ b/resources/lang/nl/firefly.php
@@ -18,9 +18,12 @@ return [
     'showEverything'                   => 'Laat alles zien',
     'never'                            => 'Nooit',
     'search_results_for'               => 'Zoekresultaten voor ":query"',
+    'bounce_error'                     => 'The message sent to :email bounced.',
+
     'nr_of_attachments'                => 'Eén bijlage|:count bijlagen',
     'attachments'                      => 'Bijlagen',
 
+
     // tour:
     'prev'                             => 'Vorige',
     'next'                             => 'Volgende',