[exim] Rejecting Recipients at RCPT stage

Top Page
Delete this message
Reply to this message
Author: Zlatko Mesaros
Date:  
To: Exim-users
Subject: [exim] Rejecting Recipients at RCPT stage
Hello,

I am trying to figure out the way to reject the users during the SMTP
dialog rather then send bounce messages.
Actually - I would like to reply with '550 User does not exist' if the
RCPT yields no valid user.
At the moment Exim accepts messages regardless whether the user exists
or not, and later the MTA sends information about non-existent users.
All the domains hosted on server are local, and all the deliveries are
local. The server doesn't act as a rely for any other server.
Beside Exim - Amavisd-new is involved in the setup.

Thanks for help!

Zlatko



Here is some more details:

Exim version 4.63 #1 built 06-Jan-2007 23:14:37
Copyright (c) University of Cambridge 2006
Berkeley DB: Sleepycat Software: Berkeley DB 4.3.29: (September 12, 2006)
Support for: crypteq iconv() IPv6 PAM Perl TCPwrappers OpenSSL
Content_Scanning Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb
dsearch ldap ldapdn ldapm mysql nis nis0 nisplus passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 4
Configuration file is /etc/exim/exim.conf


Output from exim -d+all -bhc IP.XX.150.11


16:03:02 9212 Exim version 4.63 uid=0 gid=0 pid=9212 D=fffdffff
Berkeley DB: Sleepycat Software: Berkeley DB 4.3.29: (September 12, 2006)
Support for: crypteq iconv() IPv6 PAM Perl TCPwrappers OpenSSL
Content_Scanning Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb
dsearch ldap ldapdn ldapm mysql nis nis0 nisplus passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 4
16:03:02 9212 changed uid/gid: forcing real = effective
16:03:02 9212 uid=0 gid=0 pid=9212
16:03:02 9212 auxiliary group list: <none>
16:03:02 9212 seeking password data for user "root": cache not available
16:03:02 9212 getpwnam() succeeded uid=0 gid=0
16:03:02 9212 configuration file is /etc/exim/exim.conf
16:03:02 9212 log selectors = 00000ffc 00089001
16:03:02 9212 trusted user
16:03:02 9212 admin user
16:03:02 9212 changed uid/gid: privilege not needed
16:03:02 9212 uid=93 gid=93 pid=9212
16:03:02 9212 auxiliary group list: 12 93
16:03:02 9212 originator: uid=0 gid=0 login=root name=root
16:03:02 9212 sender address = root@???
16:03:02 9212 sender_fullhost = [IP.XX.150.11]
16:03:02 9212 sender_rcvhost = [IP.XX.150.11]

**** SMTP testing session as if from host IP.XX.150.11
**** but without any ident (RFC 1413) callback.
**** This is not for real!

16:03:02  9212 host in hosts_connection_nolog? no (option unset)
16:03:02  9212 LOG: smtp_connection MAIN
16:03:02  9212   SMTP connection from [IP.XX.150.11]
16:03:02  9212 host in host_lookup? yes (matched "*")
16:03:02  9212 looking up host name for IP.XX.150.11
16:03:02  9212 DNS lookup of 11.150..XX.IP.in-addr.arpa (PTR) succeeded
16:03:02  9212 IP address lookup yielded heartofgold.bbc.com
16:03:02  9212 gethostbyname2(af=inet6) returned 1 (HOST_NOT_FOUND)
16:03:02  9212 gethostbyname2(af=inet) returned 1 (HOST_NOT_FOUND)
16:03:02  9212 no IP address found for host heartofgold.bbc.com (during 
SMTP connection from [IP.XX.150.11])
16:03:02  9212 LOG: host_lookup_failed MAIN
16:03:02  9212   no IP address found for host heartofgold.bbc.com 
(during SMTP connection from [IP.XX.150.11])
16:03:02  9212 no IP addresses found for heartofgold.bbc.com
16:03:02  9212 IP.XX.150.11 does not match any IP address for 
heartofgold.bbc.com
16:03:02  9212 sender_fullhost = [IP.XX.150.11]
16:03:02  9212 sender_rcvhost = [IP.XX.150.11]
16:03:02  9212 set_process_info:  9212 handling incoming connection from 
[IP.XX.150.11]
16:03:02  9212 host in host_reject_connection? no (option unset)
16:03:02  9212 host in sender_unqualified_hosts? no (option unset)
16:03:02  9212 host in recipient_unqualified_hosts? no (option unset)
16:03:02  9212 host in helo_verify_hosts? no (option unset)
16:03:02  9212 host in helo_try_verify_hosts? no (option unset)
16:03:02  9212 host in helo_accept_junk_hosts? no (option unset)
16:03:02  9212 expanding: $smtp_active_hostname ESMTP Exim 
$version_number $tod_full
16:03:02  9212    result: mail.abc.com ESMTP Exim 4.63 Fri, 15 Feb 2008 
16:03:02 +0200
16:03:02  9212 SMTP>> 220 mail.abc.com ESMTP Exim 4.63 Fri, 15 Feb 2008 
16:03:02 +0200
220 mail.abc.com ESMTP Exim 4.63 Fri, 15 Feb 2008 16:03:02 +0200
16:03:02  9212 smtp_setup_msg entered
16:08:02  9212 LOG: lost_incoming_connection MAIN
16:08:02  9212   SMTP command timeout on connection from [IP.XX.150.11]
16:08:02  9212 SMTP>> 421 mail.abc.com: SMTP command timeout - closing 
connection
421 mail.dashofer.com.cy: SMTP command timeout - closing connection
16:08:02  9212 search_tidyup called
16:08:02  9212 >>>>>>>>>>>>>>>> Exim pid=9212 terminating with rc=1 

>>>>>>>>>>>>>>>>



SMTP chat session:

220 mail.abc.com ESMTP Exim 4.63 Fri, 15 Feb 2008 16:03:26 +0200
HELO abc.com
250 mail.abc.com Hello dbc.com [IP.XX.150.11]
MAIL FROM: <john.bull@???>
250 OK
RCPT TO: <b1@???>
250 Accepted
DATA
354 Enter message, ending with "." on a line by itself
12
34
.
250 OK id=1JQ1B4-0002Rb-Py
QUIT
221 mail.abc.com closing connection


Part of exim.conf


acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
acl_smtp_mime = acl_check_mime


acl_check_rcpt:

accept hosts = :


  deny    message       = Restricted characters in address
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]


  deny    message       = Restricted characters in address
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./


  accept  local_parts   = postmaster
          domains       = +local_domains



  accept  hosts         = +relay_from_hosts
          control       = submission


  accept  authenticated = *
          control       = submission



  require message = relay not permitted
          domains = +local_domains : +relay_domains


require verify = recipient
accept