Состояние электронной почты: открытая или нет электронная почта и по ссылке щелкают или нет в боковой почте, используя codeigniter & sendgrid - PullRequest
0 голосов
/ 07 октября 2019

Я интегрировал sendgrid для отправки почты. Я также хочу отследить, открыл ли пользователь почту, и щелкнуть ссылку внутри письма.
, поэтому я использовал sendgrid.
, используя его, я могу отправлять почту, но не могу отслеживать состояния почты (почтаоткрыт или нет, ссылка нажата или нет).
Я попробовал приведенный ниже код для отправки почты.

 function sendMail($toMails, $body, $subject, $ccMails = array(), $bccMails = array()) {
        $ci = &get_instance();
        if (empty($toName)) {
            $toName = $toMails;
        }
        $sendMail = $ci->config->item('sendMail');
        $email = new \SendGrid\Mail\Mail();
        $email->setFrom($ci->config->item('from'), "From User name");
        $email->setSubject($subject);

        $email->addTos($toMails); //for multiple user pass array with emails and names
        $email->addCcs($ccMails);
        $email->addBccs($bccMails);
        $email->addContent("text/html", $body);
        $email->setFooter(false, "", "<strong>If you don't want to receive this type of email in the future, please <a href='http://w3schools.com'>Unsubscribe</a>.</strong>");
        //$email->setSpamCheck(true, 1, "http://localhost:8081/");
// Tracking Settings
        $email->setClickTracking(true, true);
        //$email->setOpenTracking(true, true);
        $sendgrid = new \SendGrid($ci->config->item('key'));
        try {
            $response = $sendgrid->send($email);
        } catch (Exception $e) {
            echo 'Caught exception: ', $e->getMessage(), "\n";
        }
        if ($sendMail) :
            if (!$response->statusCode()) :
                _pre($response->headers());
                return false;
            else :
                return true;
            endif;
        endif;

    }

, который работает нормально, за исключением того, что происходит в спаме.

теперь ниже кода, я использую, чтобы получить детали по электронной почте идентификатор.

 $sendgrid = new \SendGrid($this->config->item('key'));
        $query_params = json_decode('{"start_date": "2019-10-07","end_date": "2019-10-07","to_email": "cadmin1@getnada.com","subject":"This is a subject test"}');
        $response = $sendgrid->client->stats()->get(null, $query_params);
        _pre($response->body());
        exit;

Приведенный выше код дает мне только данные о дате, но я также хочу указать идентификатор электронной почты.
, но, несмотря на добавление параметра для этого, я не получаю желаемого результата.

https://sendgrid.com/docs/for-developers/sending-email/getting-started-email-activity-api/#filter-by-recipient-email
Я использовал вышеприведенную демонстрацию, в этой демонстрации они использовали curl, но я использую способ CodeIgniter. Я не уверен насчет версии sendgrid, поэтому я добавил оба тега версии, я использовал API.

У кого-нибудь есть правильное решение относительно этого?

...