function webhooks_soft_bounce($email, $additionalInfo = '') { global $webhooks_time; global $webhooks_bounce_limit; $mysqli = dbConnect(); webhooks_debug("Email soft bounced: {$email}\t{$additionalInfo}"); $sql = 'UPDATE subscribers SET bounce_soft = bounce_soft+1 WHERE email = "' . $email . '"'; $r = mysqli_query($mysqli, $sql); // Check for bounce limit $sql = 'SELECT bounce_soft FROM subscribers WHERE email = "' . $email . '" LIMIT 1'; $r2 = mysqli_query($mysqli, $sql); if ($r2 && mysqli_num_rows($r2) > 0) { while ($row = mysqli_fetch_array($r2)) { $bounce_soft = $row['bounce_soft']; } // while($row = mysqli_fetch_array($r2)) if ($bounce_soft >= $bounce_limit) { webhooks_hard_bounce($email, "--> Exceeded Soft Bounce Limit ({$bounce_soft})"); } // if($bounce_soft >= 3) } // if ($r2 && mysqli_num_rows($r2) > 0) }
event_open($event); break; case "click": event_click($event); break; case "spam": webhooks_spam_report($event['msg']['email']); break; case "spamreport": webhooks_spam_report($event['msg']['email']); break; case "unsub": event_unsubscribe($event); break; case "reject": webhooks_hard_bounce($event['msg']['email'], "reject: " . $event['msg']['bounce_description']); break; default: webhooks_debug(" == Invalid category: '" . $event["category"] . "' for: " . $event["recipient"] . " =="); } } else { // invalid email address webhooks_debug(" == Invalid email address: '" . $event['msg']['email'] . "' =="); } // if (filter_var($event["recipient"],FILTER_VALIDATE_EMAIL)) } // foreach($events as $event) //----------------------------------------------------------------------------------// // MANDRILL EVENTS UNHANDLED BY WEBHOOKS //----------------------------------------------------------------------------------// function event_open($event)
// if($critsend_signature != hash_hmac("sha256", $json_payload, $critsend_webhooks_key)) $events = json_decode($json_payload, true); foreach ($events as $event) { if (filter_var($event["recipient"], FILTER_VALIDATE_EMAIL)) { switch ($event["category"]) { case "open": event_open($event); break; case "click": event_click($event); break; case "unsubscribed": event_unsubscribe($event); break; case "hard_bounce": webhooks_hard_bounce($event["recipient"], $event["status-code"]); break; case "soft_bounce": webhooks_soft_bounce($event["recipient"], $event["status-code"]); break; case "bounce": webhooks_soft_bounce($event["recipient"], $event["status-code"]); break; case "blocked": event_blocked($event); break; case "spam_report": webhooks_spam_report($event["recipient"]); break; case "filtered": event_filtered($event);