# acymailing/trunk/back/Controllers/BouncesController.php

AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress, version trunk. 73 lines.

- Page: https://pluginprobe.com/plugins/acymailing/trunk/code/back/Controllers/BouncesController.php
- Raw: https://pluginprobe.com/plugins/acymailing/trunk/raw/back/Controllers/BouncesController.php
- Modified: 2026-08-05T09:47:50+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/acymailing/trunk/code/back/Controllers/BouncesController.php#L10-L20`.

```php
<?php

namespace AcyMailing\Controllers;

use AcyMailing\Core\AcymController;
use AcyMailing\Controllers\Bounces\Listing as BouncesListing;
use AcyMailing\Controllers\Bounces\Rule;
use AcyMailing\Controllers\MailboxActions\Listing as MailboxActionsListing;
use AcyMailing\Controllers\MailboxActions\Edition as MailboxActionsEdition;

class BouncesController extends AcymController
{
    use BouncesListing;
    use Rule;
    use MailboxActionsListing;
    use MailboxActionsEdition;

    private bool $runBounce = false;
    private array $mailboxReport = [];

    public function __construct()
    {
        parent::__construct();

        $this->defaulttask = 'bounces';
        $this->breadcrumb[acym_translation('ACYM_MAILBOX_ACTIONS')] = acym_completeLink('bounces');
        $this->storeRedirectListing();
    }

    public function storeRedirectListing(bool $fromListing = false): void
    {
        $variableName = 'ctrl_mailboxes_stored';
        $taskToStore = [
            '',
            'bounces',
            'mailboxes',
        ];
        $currentTask = acym_getVar('string', 'task', '');
        if (!in_array($currentTask, $taskToStore) && !$fromListing) {
            return;
        }

        $controller = acym_getVar('RAW', $variableName, null, 'SESSION');
        if ((empty($currentTask) || !in_array($currentTask, $taskToStore)) && !empty($controller)) {
            $taskToGo = is_array($controller) ? $controller['task'] : $controller;
            $link = acym_completeLink('bounces&task='.$taskToGo, false, true);
            if ($this->runBounce) {
                $link .= '&runBounce=1';
            }

            acym_redirect($link);
        } else {
            if (empty($currentTask) || !in_array($currentTask, $taskToStore)) {
                $currentTask = 'bounces';
            }
            acym_setSession($variableName, $currentTask);
        }

        $taskToCall = is_array($currentTask) ? $currentTask['task'] : $currentTask;
        if ($fromListing && method_exists($this, $taskToCall)) {
            $this->$taskToCall();
        }
    }

    private function getAllParamsRequest(array &$data): void
    {
        $data['search'] = $this->getVarFiltersListing('string', 'mailboxes_search', '');
        $data['status'] = $this->getVarFiltersListing('string', 'mailboxes_status', '');
        $data['ordering'] = $this->getVarFiltersListing('cmd', 'mailboxes_ordering', 'id');
        $data['orderingSortOrder'] = $this->getVarFiltersListing('cmd', 'mailboxes_ordering_sort_order', 'desc');
    }
}

```
