On Fri, 2013-10-04 at 18:16 -0400, josh trier wrote:
> I am writing an ACL that a few of my relay servers will use. All is fine
> with code. However if the central database server can not be connected to I
> want to disable the ACL to prevent messages from being rejected.
> 
> Right now this is what happens if DB conn fails (example of stopping mysqld
> service)
> 
> SMTP>> 451 Temporary local problem - please try later451 Temporary
> local problem - please try later
> LOG: MAIN REJECT
>   H=localhost [127.0.0.1] F=<[email protected]> temporarily
> rejected after DATA: MYSQL     connection failed: Can't connect to
> local MySQL server through socket '/var/lib/mysql/mysql.sock'    (2)

Although that is indeed a rejection, it's a temporary one. Well-behaved
remote servers receiving that will simply re-queue the mail and try
again later.

Jasen's readsocket approach might have legs, but I think I'd create a
shell or perl script that can give you a "DB is available" or "DB is
dead" response and call that from a warn statement using $run.

That way you could set a variable and check for its value in later ACLs,
at the cost of making one extra DB connection per message.

How to do that will be left as an exercise :)

Graeme


-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to