On 1/25/2015 3:47 AM, Chris Robinson wrote:
> 
> I use an Amazon SES relay that has a max message size of 10MB. I
> have a small client base who sometimes send large documents as
> attachments. Sometimes they will send to multiple recipients which
> may include external and internal (local) addresses.
> 
> When this happens postfwd will get a hit on the EOM rule that
> detects size>9MB. The rule's action is "FILTER smtp:" in order to
> bypass the relay.  This rule also has a pcre item that is meant to
> exclude local recipients from the hit but which was ignored (I
> realise now it's because we are dealing with the whole message) with
> the result that the external recipients got "mail loops back to
> myself".
> 
> I thought I might be able to use a before-message filter because the
> README says "1. Re-inject the mail back into Postfix via SMTP,
> perhaps after changing its content and/or destination." but I was
> not clear on how to change the destination and, in any case it would
> still apply to all the recipients I assume.
> 
> I thought I could use a postconf concurrency parameter to force
> postfix to split all messages into single recipient messages right
> at the SMTPD beginning so that postfwd got only single recipient
> messages but I could not make this happen. This would be the ideal
> solution.
> 
> I got these from Noel Jones and Victor Dukhovni:
> 
>> Noel Jones wrote:
>>
> 
>>> On 1/23/2015 10:41 AM, Viktor Dukhovni wrote:
>>> For custom per-user routing that depends on policy-based factors
>>> force an extra SMTP hop for the entire message via a transport with
>>> recipient concurrency set to 1.  On the receiving end of that you
>>> can do per-user FILTER actions as messages will have only one user
>>> at a time (delivered as many times as there are recipients).
> 
>> For this specific application, it should be sufficient to use a
>> policy service FILTER action to send only big messages to a second
>> postfix instance, then let that second instance deliver mail
>> "normally" (normal local delivery, empty relayhost setting).  There
>> should be no need to set the concurrency to 1.
> 
>> Messages under the target size can be delivered by the primary
>> instance to the relayhost, same as they currently are.
> 
>> One way adds a second hop for all mail, the other makes some mail
>> "special".  I don't really like either of these choices.  If it's OK
>> to send big mail directly, why not just send it all directly.
>>
>>   -- Noel Jones
> 
> Victor's solution doesn't mention a second instance of postfix but I
> take it that's implied(?). Presumably Noel's solution is the same as
> Victor's without the concurrency issue and they both require me to
> tackle multi-instance postfix. It's additional learning curve I had
> hoped to avoid.
> 
> Noel, the reason I don't send mail out directly is that a managed
> relay handles all the hassle of outbound mail filtering and I never
> have to worry about my IP being blacklisted again because of some
> slip up or oversight. And with my low volumes the cost is trivial.

You've somewhat painted yourself into a corner here.

You either need to deliver all mail directly, or use multiple
instances (details of the multi instances notwithstanding), or use
something other than postfix.  I still think direct delivery is your
best choice.


Good luck.



  -- Noel Jones


> 
> Wietse, unless you can come up with a lovely simple way of handling
> multi-recipient routing, or unless Victor's solution does not
> involve a second instance of postfix, I think I will have to follow
> Noel's advice.
> 
> Thanks all,
> Chris Robinson

Reply via email to