Я интегрировал 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.
У кого-нибудь есть правильное решение относительно этого?