     1: <?php
     2:
     3: class Mandrill_Rejects {
     4:     public function __construct(Mandrill $master) {
     5:         $this->master = $master;
     6:     }
     7:
     8:     /**
     9:      * Adds an email to your email rejection blacklist. Addresses that you
    10: add manually will never expire and there is no reputation penalty
    11: for removing them from your blacklist. Attempting to blacklist an
    12: address that has been whitelisted will have no effect.
    13:      * @param string $email an email address to block
    14:      * @param string $comment an optional comment describing the rejection
    15:      * @param string $subaccount an optional unique identifier for the subaccount to limit the blacklist entry
    16:      * @return struct a status object containing the address and the result of the operation
    17:      *     - email string the email address you provided
    18:      *     - added boolean whether the operation succeeded
    19:      */
    20:     public function add($email, $comment=null, $subaccount=null) {
    21:         $_params = array("email" => $email, "comment" => $comment, "subaccount" => $subaccount);
    22:         return $this->master->call('rejects/add', $_params);
    23:     }
    24:
    25:     /**
    26:      * Retrieves your email rejection blacklist. You can provide an email
    27: address to limit the results. Returns up to 1000 results. By default,
    28: entries that have expired are excluded from the results; set
    29: include_expired to true to include them.
    30:      * @param string $email an optional email address to search by
    31:      * @param boolean $include_expired whether to include rejections that have already expired.
    32:      * @param string $subaccount an optional unique identifier for the subaccount to limit the blacklist
    33:      * @return array Up to 1000 rejection entries
    34:      *     - return[] struct the information for each rejection blacklist entry
    35:      *         - email string the email that is blocked
    36:      *         - reason string the type of event (hard-bounce, soft-bounce, spam, unsub, custom) that caused this rejection
    37:      *         - detail string extended details about the event, such as the SMTP diagnostic for bounces or the comment for manually-created rejections
    38:      *         - created_at string when the email was added to the blacklist
    39:      *         - last_event_at string the timestamp of the most recent event that either created or renewed this rejection
    40:      *         - expires_at string when the blacklist entry will expire (this may be in the past)
    41:      *         - expired boolean whether the blacklist entry has expired
    42:      *         - sender struct the sender that this blacklist entry applies to, or null if none.
    43:      *             - address string the sender's email address
    44:      *             - created_at string the date and time that the sender was first seen by Mandrill as a UTC date string in YYYY-MM-DD HH:MM:SS format
    45:      *             - sent integer the total number of messages sent by this sender
    46:      *             - hard_bounces integer the total number of hard bounces by messages by this sender
    47:      *             - soft_bounces integer the total number of soft bounces by messages by this sender
    48:      *             - rejects integer the total number of rejected messages by this sender
    49:      *             - complaints integer the total number of spam complaints received for messages by this sender
    50:      *             - unsubs integer the total number of unsubscribe requests received for messages by this sender
    51:      *             - opens integer the total number of times messages by this sender have been opened
    52:      *             - clicks integer the total number of times tracked URLs in messages by this sender have been clicked
    53:      *             - unique_opens integer the number of unique opens for emails sent for this sender
    54:      *             - unique_clicks integer the number of unique clicks for emails sent for this sender
    55:      *         - subaccount string the subaccount that this blacklist entry applies to, or null if none.
    56:      */
    57:     public function getList($email=null, $include_expired=false, $subaccount=null) {
    58:         $_params = array("email" => $email, "include_expired" => $include_expired, "subaccount" => $subaccount);
    59:         return $this->master->call('rejects/list', $_params);
    60:     }
    61:
    62:     /**
    63:      * Deletes an email rejection. There is no limit to how many rejections
    64: you can remove from your blacklist, but keep in mind that each deletion
    65: has an affect on your reputation.
    66:      * @param string $email an email address
    67:      * @param string $subaccount an optional unique identifier for the subaccount to limit the blacklist deletion
    68:      * @return struct a status object containing the address and whether the deletion succeeded.
    69:      *     - email string the email address that was removed from the blacklist
    70:      *     - deleted boolean whether the address was deleted successfully.
    71:      *     - subaccount string the subaccount blacklist that the address was removed from, if any
    72:      */
    73:     public function delete($email, $subaccount=null) {
    74:         $_params = array("email" => $email, "subaccount" => $subaccount);
    75:         return $this->master->call('rejects/delete', $_params);
    76:     }
    77:
    78: }
    79:
    80:
    81: