igloonet / mailkit-api

Other
0 stars 5 forks source link

další mailinglist funkce #16

Open pohadkar opened 4 years ago

pohadkar commented 4 years ago

prošel jsem váš mailinglist manager, ale nenašel jsem tam některé funkce z mailkit api, tykajici se mailinglistu. konkrétně jde o funkci mailkit.mailinglist.getstatus která po zadání id mailing listu vrací seznam příjemců v něm. dokázali byste mi poradit, jak tuto funkci do vašeho manageru doplnit? jde to nějak jednoduše?

pohadkar commented 4 years ago

tak jsem si to naknec dokazal upravit sam. pro ty co by to zajimalo: do MailingListsManager.php jsem pridal funkci:

/**
 * pridano 16.3.2020
 * vraci seznam aktivnich lidi v mailinglistu
 */
public function customGetStatusMailingList(string $listid, int $odidmailu = 0, $limit = 1000): array
{
    $params = [
        'ID_user_list' => $listid,
                    'status' => 'enabled',
                    'change_date' => '',
                    'ID_email' => $odidmailu,
                    'limit' => $limit
    ];

    $rpcResponse = $this->sendRpcRequest('mailkit.mailinglist.getstatus', $params, []);

    if ($rpcResponse->isError()) {
        throw new MailingListCreationUnknownErrorException($rpcResponse);
    }

    $mailingUsers = [];

    foreach ($rpcResponse->getArrayValue() as $mailingListData) {
        $mailingUsers[] = array(
                            $mailingListData['ID_EMAIL'],
            $mailingListData['EMAIL'],
            $mailingListData['STATUS']
        );
    }

    return $mailingUsers;
}

musite pak vlozit id mailing listu, a volitelne od jakeho id mailu vypsat a pocet vypsanych. (maximum vracenych je 10 000 dle mailkitu, takze vetsi mailing lisy se musi nacitat na vic pokusu a vzdy pouzit posledni vracene id mailu)