Re: [Exim] remote SMTP defer to a different queue first

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Nico Erfurth
Date:  
À: Andrew, Exim-Users (E-mail)
Sujet: Re: [Exim] remote SMTP defer to a different queue first
Andrew wrote:
> Hi All,
>
> I am trying to pump large amounts of email to a few local (fast)
> hosts. I have a 'queue' to process - this includes around 70% of
> volume to my fast hosts, and 30% to the remaing hosts (the 30% are
> bounces from the fast host....). The delivery goes fine, but the 30% of
> bounces really slows things down (as it has to talk to hosts outside of
> the network) :( Reading through the manual I could use the -R
> domain.com - option, however 100% of emails are addressed to this
> domain, so the -R selects everything (and doesn't help!).
>
> Anyhow, to solve this problem, what I am trying to do is modify my
> dnslookup entry to defer to a separate (non-standard) queue - This
> way I could run a seperate queue runner on the other queue, and the
> first queue would not be held up by external deliveries [it would just
> pass anything external to a seperate queue and let the other runner deal
> with it]....
>
> I was after something like.... (lame psudo code)
> dnslookup:
> driver = dnslookup
> domains = ! +local_domains
> transport = my_spool
> ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
> no_more
>
> then in transports -
> my_spool:
> spool = /var/spool/exim.out
> defer
>
> (I know the above won't work, but is there something like that I can do?)
>
> I am unsure of how to get exim to save the email message to a queue (and
> not to a mbox or maildir format).


Depending on your setup it could be worth to defer bounces for some time.

defer_router:
driver = redirect
domains = !+local_domains
senders = :
condition = ${if <{$message_age}{3600}{1}{0}}
data = :defer:

This way the bounces will stay on your queue for at least an hour.
You could also make this depend on your current load, or current time of
day. (Like, only send bounces at night, when the load is light)

Something else you could do is using bsmtp to save the bounces, and
process them later. You could use your router, with the transport beeing.

my_bsmtp_spool:
driver = appendfile
use_bsmtp
file = /var/spool/bounces.${l_8:$tod_zulu}.bsmtp

This would create one bounces file per day, you could process them once
per night and send them off.

But as someone else said, you should try to create bounces at all, in
first place.

Oh, and raise your queue_run_max value.

Nico