Re: [exim] Need help setting up forwarding to my exchange se…

Top Page
Delete this message
Reply to this message
Author: Phil Pennock
Date:  
To: Timothy A. Holmes
CC: exim-users
Subject: Re: [exim] Need help setting up forwarding to my exchange server
On 2006-03-24 at 11:29 -0500, Timothy A. Holmes wrote:
> I am having a terrible time getting my exim server set up.


Some of your problems may be caused by your client configuration too:

2006-03-23 16:48:02 SMTP protocol synchronization error (input sent without waiting for greeting): rejected connection from H=tim-base.mcaschool.local [192.168.0.43] input='\377\373\037\377\373\377\373\030\377\373'\377\375\001\377\373\003\377\375\003'

This looks to me like the client is speaking SSL immediately on
start-up, instead of negotiating it afterwards. Which port is this
from? Surely not port 25! That's fundamentally broken of the client.
If the client is a program like Thunderbird, then its reference to "SSL"
really means "SSL/TLS immediately upon connection", whereas its "TLS"
means "start SSL/TLS with the STARTTLS command". Tell your client to
use TLS if you want security, or SSL only if using port 465. For an
Exim listening on all the appropriate ports for a server taking mail
from mail clients (as well as the general Internet) then something like:

daemon_smtp_ports = smtp : smtps : submission
tls_on_connect_ports = 465

in the main section of the configuration. There are various other
settings you can make elsewhere to let you do proper fixups on content
for the submission port, etc.

2006-03-23 16:54:38 H=localhost [127.0.0.1]
F=<test@???>
rejected RCPT root@???: Sender verify failed

This is because there's nothing handling the address "test@"; so the
basic anti-spam settings are going "the address test@my-own-name is not
valid, so reject". This is the "require verify = sender" item in your
acl_check_rcpt Access Control List, and the way that it comes before the
ACL checks for local/relayed mail.

You could use a real sender address from elsewhere (a personal account?)
or you could use root@.

> My needs are pretty simple really, I need it to relay system mail and
> my logwatch messages either to me so I can read them in pine, or,
> preferably to my account on our exchange server


To send all mail for local_domains and relay_to_domains onto a host,
first define a macro-name for the host at the start; this isn't
_needed_, but it's a very good idea, so that you can change it easily
(including on the command-line with -D if needed), so

EXCHANGE_SERVER=exchange.server.hostname

(and I really hope that the exchange server isn't srvnms-01; if it is,
you really should use a different name for the Exim server).

Then, as your very first Router (order matters, section after
"begin routers") you want something like:

exchange_server:
driver = manualroute
domains = +local_domains : +relay_to_domains
transport = remote_smtp
route_data = EXCHANGE_SERVER
no_more

So you have a Router definition; it handles all mail for the local
system and for the relayed-to systems, and the no_more means that
nothing below can handle these if the Router rejects them (so the
userforward will fail). If you do want local users, then instead place
exchange_server at the end of the router list.

By using manualroute, we can tell the remote_smtp transport explicitly
which host to send the mails to; in this case, EXCHANGE_SERVER, defined
at the start of the file.

To only send on the *.mcaschool.net mail, remove +local_domains from
exchange_server. Also, if you want to handle mail @mcaschool.net too,
then you'll need to set:

domainlist relay_to_domains = mcaschool.net : *.mcaschool.net

since the *. means you only match sub-domains.

Kind regards,
-Phil