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',