Delivery Server Domain Policies

Hi

We're currently trying to rate limit the amount of mail we send to Hotmail/Live/Outlook addresses to improve our IP reputation.

We have created 2 delivery servers, one that has an hourly quota of 20 and domain policies as below:
allowoutlook.png

The other none limited delivery server is identical apart from the server name and domain policies as below:
denyoutlook.png

For some reason the sending is stalling to a halt. On manually running the "send-campaigns" command with the verbose parameter it becomes apparent that both delivery servers are just getting bogged down with the hotmail addresses in the list.

It seems the "processing" behaviour is to check all of the unsent subscribers against the domain policies and blacklists, every single time the send-campaign command is issued.

If you have a fairly strict quota on one delivery server and quite a high percentage of subscribers in a list being matched with the domain policy, you're very quickly going to end up in a situation where both servers are affected by the quota.

If there was some way to have the IF loop at SendCampaignsCommand:869 get another subscriber from the DB it might solve that but it would mean excessive DB querying...

The alternative that I can see is to change the processing quantity to a number higher than the amount of subscribers being matched by a deny policy. Not ideal at all tho!

Elliot
 
Last edited:
@Elliot Cater - We have yet to find a proper way of doing this. What you can do, at line ~1129 you have:
Code:
if (empty($params['domainPolicySubscribersMaxRounds'])) {
    $params['domainPolicySubscribersMaxRounds'] = DeliveryServer::model()->countByAttributes(array(
        'status' => DeliveryServer::STATUS_ACTIVE
    ));
}
So you could change this to a higher number, i.e:
Code:
if (empty($params['domainPolicySubscribersMaxRounds'])) {
    $params['domainPolicySubscribersMaxRounds'] = 100;
}
Which might do the trick for you.
 
:D

In the findSubscribers() (@ ~1271) would it work adding another parameter in there to feed it an array of domain policies and use it to build the $criteria to find subscribers excluding ones from the domain policies?

My brain is hurting as its the end of the day!
 
Just a thought now that I’m home and have sunk a beer... rather than having a subscriber ‘unset’ from the subscibers object, would it not be better/more efficient to get the correct subscriber’s by means of database query? Going to have a look at the code later as my eyes are still square:cool:
 
We might be able to provide an array with subscriber ids which should be excluded, not sure how good of idea it is though, since the array might become really really huge, with thousand elements.
 
We might be able to provide an array with subscriber ids which should be excluded, not sure how good of idea it is though, since the array might become really really huge, with thousand elements.
Just checking:
quota is not deducted when email is not sent (e.g. due to domain policy), correct?
I.e. quota is only deducted when email truly goes out, correct?
 
Back
Top