1: <?php
2:
3: class Mandrill_Senders {
4: public function __construct(Mandrill $master) {
5: $this->master = $master;
6: }
7:
8: /**
9: * Return the senders that have tried to use this account.
10: * @return array an array of sender data, one for each sending addresses used by the account
11: * - return[] struct the information on each sending address in the account
12: * - address string the sender's email address
13: * - 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
14: * - sent integer the total number of messages sent by this sender
15: * - hard_bounces integer the total number of hard bounces by messages by this sender
16: * - soft_bounces integer the total number of soft bounces by messages by this sender
17: * - rejects integer the total number of rejected messages by this sender
18: * - complaints integer the total number of spam complaints received for messages by this sender
19: * - unsubs integer the total number of unsubscribe requests received for messages by this sender
20: * - opens integer the total number of times messages by this sender have been opened
21: * - clicks integer the total number of times tracked URLs in messages by this sender have been clicked
22: * - unique_opens integer the number of unique opens for emails sent for this sender
23: * - unique_clicks integer the number of unique clicks for emails sent for this sender
24: */
25: public function getList() {
26: $_params = array();
27: return $this->master->call('senders/list', $_params);
28: }
29:
30: /**
31: * Returns the sender domains that have been added to this account.
32: * @return array an array of sender domain data, one for each sending domain used by the account
33: * - return[] struct the information on each sending domain for the account
34: * - domain string the sender domain name
35: * - created_at string the date and time that the sending domain was first seen as a UTC string in YYYY-MM-DD HH:MM:SS format
36: * - last_tested_at string when the domain's DNS settings were last tested as a UTC string in YYYY-MM-DD HH:MM:SS format
37: * - spf struct details about the domain's SPF record
38: * - valid boolean whether the domain's SPF record is valid for use with Mandrill
39: * - valid_after string when the domain's SPF record will be considered valid for use with Mandrill as a UTC string in YYYY-MM-DD HH:MM:SS format. If set, this indicates that the record is valid now, but was previously invalid, and Mandrill will wait until the record's TTL elapses to start using it.
40: * - error string an error describing the spf record, or null if the record is correct
41: * - dkim struct details about the domain's DKIM record
42: * - valid boolean whether the domain's DKIM record is valid for use with Mandrill
43: * - valid_after string when the domain's DKIM record will be considered valid for use with Mandrill as a UTC string in YYYY-MM-DD HH:MM:SS format. If set, this indicates that the record is valid now, but was previously invalid, and Mandrill will wait until the record's TTL elapses to start using it.
44: * - error string an error describing the DKIM record, or null if the record is correct
45: * - verified_at string if the domain has been verified, this indicates when that verification occurred as a UTC string in YYYY-MM-DD HH:MM:SS format
46: * - valid_signing boolean whether this domain can be used to authenticate mail, either for itself or as a custom signing domain. If this is false but spf and dkim are both valid, you will need to verify the domain before using it to authenticate mail
47: */
48: public function domains() {
49: $_params = array();
50: return $this->master->call('senders/domains', $_params);
51: }
52:
53: /**
54: * Adds a sender domain to your account. Sender domains are added automatically as you
55: send, but you can use this call to add them ahead of time.
56: * @param string $domain a domain name
57: * @return struct information about the domain
58: * - domain string the sender domain name
59: * - created_at string the date and time that the sending domain was first seen as a UTC string in YYYY-MM-DD HH:MM:SS format
60: * - last_tested_at string when the domain's DNS settings were last tested as a UTC string in YYYY-MM-DD HH:MM:SS format
61: * - spf struct details about the domain's SPF record
62: * - valid boolean whether the domain's SPF record is valid for use with Mandrill
63: * - valid_after string when the domain's SPF record will be considered valid for use with Mandrill as a UTC string in YYYY-MM-DD HH:MM:SS format. If set, this indicates that the record is valid now, but was previously invalid, and Mandrill will wait until the record's TTL elapses to start using it.
64: * - error string an error describing the spf record, or null if the record is correct
65: * - dkim struct details about the domain's DKIM record
66: * - valid boolean whether the domain's DKIM record is valid for use with Mandrill
67: * - valid_after string when the domain's DKIM record will be considered valid for use with Mandrill as a UTC string in YYYY-MM-DD HH:MM:SS format. If set, this indicates that the record is valid now, but was previously invalid, and Mandrill will wait until the record's TTL elapses to start using it.
68: * - error string an error describing the DKIM record, or null if the record is correct
69: * - verified_at string if the domain has been verified, this indicates when that verification occurred as a UTC string in YYYY-MM-DD HH:MM:SS format
70: * - valid_signing boolean whether this domain can be used to authenticate mail, either for itself or as a custom signing domain. If this is false but spf and dkim are both valid, you will need to verify the domain before using it to authenticate mail
71: */
72: public function addDomain($domain) {
73: $_params = array("domain" => $domain);
74: return $this->master->call('senders/add-domain', $_params);
75: }
76:
77: /**
78: * Checks the SPF and DKIM settings for a domain. If you haven't already added this domain to your
79: account, it will be added automatically.
80: * @param string $domain a domain name
81: * @return struct information about the sender domain
82: * - domain string the sender domain name
83: * - created_at string the date and time that the sending domain was first seen as a UTC string in YYYY-MM-DD HH:MM:SS format
84: * - last_tested_at string when the domain's DNS settings were last tested as a UTC string in YYYY-MM-DD HH:MM:SS format
85: * - spf struct details about the domain's SPF record
86: * - valid boolean whether the domain's SPF record is valid for use with Mandrill
87: * - valid_after string when the domain's SPF record will be considered valid for use with Mandrill as a UTC string in YYYY-MM-DD HH:MM:SS format. If set, this indicates that the record is valid now, but was previously invalid, and Mandrill will wait until the record's TTL elapses to start using it.
88: * - error string an error describing the spf record, or null if the record is correct
89: * - dkim struct details about the domain's DKIM record
90: * - valid boolean whether the domain's DKIM record is valid for use with Mandrill
91: * - valid_after string when the domain's DKIM record will be considered valid for use with Mandrill as a UTC string in YYYY-MM-DD HH:MM:SS format. If set, this indicates that the record is valid now, but was previously invalid, and Mandrill will wait until the record's TTL elapses to start using it.
92: * - error string an error describing the DKIM record, or null if the record is correct
93: * - verified_at string if the domain has been verified, this indicates when that verification occurred as a UTC string in YYYY-MM-DD HH:MM:SS format
94: * - valid_signing boolean whether this domain can be used to authenticate mail, either for itself or as a custom signing domain. If this is false but spf and dkim are both valid, you will need to verify the domain before using it to authenticate mail
95: */
96: public function checkDomain($domain) {
97: $_params = array("domain" => $domain);
98: return $this->master->call('senders/check-domain', $_params);
99: }
100:
101: /**
102: * Sends a verification email in order to verify ownership of a domain.
103: Domain verification is an optional step to confirm ownership of a domain. Once a
104: domain has been verified in a Mandrill account, other accounts may not have their
105: messages signed by that domain unless they also verify the domain. This prevents
106: other Mandrill accounts from sending mail signed by your domain.
107: * @param string $domain a domain name at which you can receive email
108: * @param string $mailbox a mailbox at the domain where the verification email should be sent
109: * @return struct information about the verification that was sent
110: * - status string "sent" indicates that the verification has been sent, "already_verified" indicates that the domain has already been verified with your account
111: * - domain string the domain name you provided
112: * - email string the email address the verification email was sent to
113: */
114: public function verifyDomain($domain, $mailbox) {
115: $_params = array("domain" => $domain, "mailbox" => $mailbox);
116: return $this->master->call('senders/verify-domain', $_params);
117: }
118:
119: /**
120: * Return more detailed information about a single sender, including aggregates of recent stats
121: * @param string $address the email address of the sender
122: * @return struct the detailed information on the sender
123: * - address string the sender's email address
124: * - 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
125: * - sent integer the total number of messages sent by this sender
126: * - hard_bounces integer the total number of hard bounces by messages by this sender
127: * - soft_bounces integer the total number of soft bounces by messages by this sender
128: * - rejects integer the total number of rejected messages by this sender
129: * - complaints integer the total number of spam complaints received for messages by this sender
130: * - unsubs integer the total number of unsubscribe requests received for messages by this sender
131: * - opens integer the total number of times messages by this sender have been opened
132: * - clicks integer the total number of times tracked URLs in messages by this sender have been clicked
133: * - stats struct an aggregate summary of the sender's sending stats
134: * - today struct stats for this sender so far today
135: * - sent integer the number of emails sent for this sender so far today
136: * - hard_bounces integer the number of emails hard bounced for this sender so far today
137: * - soft_bounces integer the number of emails soft bounced for this sender so far today
138: * - rejects integer the number of emails rejected for sending this sender so far today
139: * - complaints integer the number of spam complaints for this sender so far today
140: * - unsubs integer the number of unsubscribes for this sender so far today
141: * - opens integer the number of times emails have been opened for this sender so far today
142: * - unique_opens integer the number of unique opens for emails sent for this sender so far today
143: * - clicks integer the number of URLs that have been clicked for this sender so far today
144: * - unique_clicks integer the number of unique clicks for emails sent for this sender so far today
145: * - last_7_days struct stats for this sender in the last 7 days
146: * - sent integer the number of emails sent for this sender in the last 7 days
147: * - hard_bounces integer the number of emails hard bounced for this sender in the last 7 days
148: * - soft_bounces integer the number of emails soft bounced for this sender in the last 7 days
149: * - rejects integer the number of emails rejected for sending this sender in the last 7 days
150: * - complaints integer the number of spam complaints for this sender in the last 7 days
151: * - unsubs integer the number of unsubscribes for this sender in the last 7 days
152: * - opens integer the number of times emails have been opened for this sender in the last 7 days
153: * - unique_opens integer the number of unique opens for emails sent for this sender in the last 7 days
154: * - clicks integer the number of URLs that have been clicked for this sender in the last 7 days
155: * - unique_clicks integer the number of unique clicks for emails sent for this sender in the last 7 days
156: * - last_30_days struct stats for this sender in the last 30 days
157: * - sent integer the number of emails sent for this sender in the last 30 days
158: * - hard_bounces integer the number of emails hard bounced for this sender in the last 30 days
159: * - soft_bounces integer the number of emails soft bounced for this sender in the last 30 days
160: * - rejects integer the number of emails rejected for sending this sender in the last 30 days
161: * - complaints integer the number of spam complaints for this sender in the last 30 days
162: * - unsubs integer the number of unsubscribes for this sender in the last 30 days
163: * - opens integer the number of times emails have been opened for this sender in the last 30 days
164: * - unique_opens integer the number of unique opens for emails sent for this sender in the last 30 days
165: * - clicks integer the number of URLs that have been clicked for this sender in the last 30 days
166: * - unique_clicks integer the number of unique clicks for emails sent for this sender in the last 30 days
167: * - last_60_days struct stats for this sender in the last 60 days
168: * - sent integer the number of emails sent for this sender in the last 60 days
169: * - hard_bounces integer the number of emails hard bounced for this sender in the last 60 days
170: * - soft_bounces integer the number of emails soft bounced for this sender in the last 60 days
171: * - rejects integer the number of emails rejected for sending this sender in the last 60 days
172: * - complaints integer the number of spam complaints for this sender in the last 60 days
173: * - unsubs integer the number of unsubscribes for this sender in the last 60 days
174: * - opens integer the number of times emails have been opened for this sender in the last 60 days
175: * - unique_opens integer the number of unique opens for emails sent for this sender in the last 60 days
176: * - clicks integer the number of URLs that have been clicked for this sender in the last 60 days
177: * - unique_clicks integer the number of unique clicks for emails sent for this sender in the last 60 days
178: * - last_90_days struct stats for this sender in the last 90 days
179: * - sent integer the number of emails sent for this sender in the last 90 days
180: * - hard_bounces integer the number of emails hard bounced for this sender in the last 90 days
181: * - soft_bounces integer the number of emails soft bounced for this sender in the last 90 days
182: * - rejects integer the number of emails rejected for sending this sender in the last 90 days
183: * - complaints integer the number of spam complaints for this sender in the last 90 days
184: * - unsubs integer the number of unsubscribes for this sender in the last 90 days
185: * - opens integer the number of times emails have been opened for this sender in the last 90 days
186: * - unique_opens integer the number of unique opens for emails sent for this sender in the last 90 days
187: * - clicks integer the number of URLs that have been clicked for this sender in the last 90 days
188: * - unique_clicks integer the number of unique clicks for emails sent for this sender in the last 90 days
189: */
190: public function info($address) {
191: $_params = array("address" => $address);
192: return $this->master->call('senders/info', $_params);
193: }
194:
195: /**
196: * Return the recent history (hourly stats for the last 30 days) for a sender
197: * @param string $address the email address of the sender
198: * @return array the array of history information
199: * - return[] struct the stats for a single hour
200: * - time string the hour as a UTC date string in YYYY-MM-DD HH:MM:SS format
201: * - sent integer the number of emails that were sent during the hour
202: * - hard_bounces integer the number of emails that hard bounced during the hour
203: * - soft_bounces integer the number of emails that soft bounced during the hour
204: * - rejects integer the number of emails that were rejected during the hour
205: * - complaints integer the number of spam complaints received during the hour
206: * - opens integer the number of emails opened during the hour
207: * - unique_opens integer the number of unique opens generated by messages sent during the hour
208: * - clicks integer the number of tracked URLs clicked during the hour
209: * - unique_clicks integer the number of unique clicks generated by messages sent during the hour
210: */
211: public function timeSeries($address) {
212: $_params = array("address" => $address);
213: return $this->master->call('senders/time-series', $_params);
214: }
215:
216: }
217:
218:
219: