Exim Mail

    About...


    Exim is an MTA... a Mail Transfer Agent. It receives mail from the wire and either puts it into a mail box or sends it to another MTA.

    CREATED 2016-11-14 10:10:30.0

    00-26-BE

    UPDATED 2016-11-14 10:10:42.0

    Tweaking the Queue


    Useful commands to tweak the queue...

    exim -M email-id Force delivery of a message
    exim -qf Start a queue run
    exim -qff Start a queue run and flush frozen messages
    exim -Mvl messageID View an individual log for the message
    exim -Mvb messageID View the message body
    exim -Mvh messageID View the message header
    exim -Mrm messageID Remove a message, send no error
    exim -Mg messageID Stop trying to deliver this message(s)

    CREATED 2021-10-16 15:53:00.0

    007-00-04-D9

    UPDATED 2021-12-22 13:13:38.0

    Testing...


    Exim provides many ways to test the different aspects of it. This list is those that I have run accross.

    Argument Description
    bh <ipaddr> Tests the reception of a host (the argument)
    bP Prints all arguments defined in the config files
    bt <email addr> Test an email address i.e. it runs the address through the routers and tells which router the address will pass through
    bV Lists all the options Exim was compiled with

    CREATED 2018-11-10 23:12:31.0

    007-00-00-A9

    UPDATED 2021-12-22 13:13:12.0

    Trouble...


    Clear all messages from the queue... this even works when exim is not running...

    exim -bp | exiqgrep -i | xargs exim -Mrm

    CREATED 2021-10-15 16:23:31.0

    007-00-04-D7

    UPDATED 2021-12-22 13:13:13.0

    Lookups


    Exim has many types of lookups. They all follow the same basic syntax. (you won't find this else where - I looked)...

    ${lookup [type of lookup] {pass} {fail}}

    type of lookup covers many things and those constructs are covered in there own namespace. The point here is the structure of the lookup.

    The pass value is returned if type of lookup succeeds. The fail value is returned if it doesn't.

    A real life example. This is from a router..:

    condition = ${loolup \
       mysql{ \
          SELECT username \
            FROM myusers \
           WHERE username = ${quote_mysql:$local_part} \
       } \
       {yes} \
       {no} \
    }

    The slashes are continuation characters... you knew that.

    If the query is successful it will return yes otherwise it returns no which would cause the router to fail.

    CREATED 2021-10-16 15:34:46.0

    007-00-04-D8

    UPDATED 2021-12-22 13:13:15.0

    Spam Test


    Use this string in the body of an email message to test spam filters...

    XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

    It will score 997.1

    CREATED 2021-12-24 12:49:21.0

    018-00-0A-97

    UPDATED 2021-12-24 12:49:35.0

    DBID: db.wam

    Page Server: Ruger

    ©2019 Leistware.com
          Hello anonymous