[Exim] Need help on upgrading Exim 3.35 to Exim 4.03! Again

Top Page
Delete this message
Reply to this message
Author: Levin Lee
Date:  
To: exim-users
Subject: [Exim] Need help on upgrading Exim 3.35 to Exim 4.03! Again
Hello!

With exim-3.conf and exim-4.conf.

When I try to upgrade an existing Exim-3.35 server to Exim-4.03, I can
not get it run at all. It seems my configuration file does not work.

I attached both of the two configuration files with this message, the
exim-3.conf works well, with MySQL supports. But the exim-4.conf does
not. Please help me to check exim-4.conf, there must be mistakes, I bet.
There are some changes in database schema, but it is not the point. Or
just help me to translate exim-3.conf to a right one for Exim 4.

The operating system is FreeBSD 4.4, and I am sure that all compiling options
are correct. There are more than 18,000 users in this server, I supposed
upgrading to an Exim 4 system may get better performance.

Sorry for my poor English, but I am from China.

Thank you in advance!

exim-3.conf
######################################################################
#                    MAIN CONFIGURATION SETTINGS                     #
######################################################################


mysql_servers = localhost/exim/eximuser/eximpass

local_domains = \
mysql;select domain from domain where status=1 and domain='$key'

forbid_domain_literals = yes

exim_user = mailnull

exim_group = mail

never_users = root : mailnull

host_accept_relay = 127.0.0.1

auth_always_advertise = yes

host_auth_accept_relay = *

percent_hack_domains = *

ignore_errmsg_errors_after = 2d

timeout_frozen_after = 7d




######################################################################
#                      TRANSPORTS CONFIGURATION                      #
######################################################################
#                       ORDER DOES NOT MATTER                        #
#     Only one appropriate transport is called for each delivery.    #
######################################################################


remote_smtp:
driver = smtp

virtual_delivery:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add
  user = nobody
  group = nogroup
  mode = 0600
  maildir_format
  create_directory
  directory = \
    ${lookup mysql{select home from user where status=1 and account='$local_part@$domain'}}/Maildir
  quota = \
    ${lookup mysql{select diskquota from user where status=1 and account='$local_part@$domain'}}
  #quota_filecount = \
    #${lookup mysql{select filequota from user where status=1 and account='$local_part@$domain'}}
  quota_warn_message = "\
    To: $local_part@$domain\n\
    Subject: Your mailbox quota.\n\n\
    This message is automatically created \
    by mail delivery software.\n\n\
    The size of your mailbox has exceeded \
    a warning threshold that is\n\
    set by the system administrator.\n"


address_pipe:
driver = pipe
return_output

address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add

address_reply:
driver = autoreply




######################################################################
#                      DIRECTORS CONFIGURATION                       #
#             Specifies how local addresses are handled              #
######################################################################
#                          ORDER DOES MATTER                         #
#   A local address is passed to each in turn until it is accepted.  #
######################################################################


userforward:
driver = forwardfile
file = .forward
no_verify
no_expn
check_ancestor
# filter
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
match_directory = !^/nonexistent

virtual_user:
  driver = aliasfile
  search_type = mysql
  query = \
    "select account from user where status=1 and account='$local_part@$domain'"
  transport = virtual_delivery





######################################################################
#                      ROUTERS CONFIGURATION                         #
#            Specifies how remote addresses are handled              #
######################################################################
#                          ORDER DOES MATTER                         #
#  A remote address is passed to each in turn until it is accepted.  #
######################################################################


lookuphost:
driver = lookuphost
transport = remote_smtp
ignore_target_hosts = 127.0.0.0/8




######################################################################
#                      RETRY CONFIGURATION                           #
######################################################################


# Domain               Error       Retries
# ------               -----       -------
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,8h





######################################################################
#                      REWRITE CONFIGURATION                         #
######################################################################


# There are no rewriting specifications in this default configuration file.




######################################################################
#                   AUTHENTICATION CONFIGURATION                     #
######################################################################


smtp_auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_set_id = $2
  server_condition = \
    ${lookup mysql{select 1 from user where status=1 and account='$2' and password='$3'}{$value}{no}}


smtp_auth_login:
  driver = plaintext
  public_name = LOGIN
  server_set_id = $1
  server_condition = \
    ${lookup mysql{select 1 from user where status=1 and account='$1' and password='$2'}{$value}{no}}
  server_prompts = Username:: : Password::



# End of Exim configuration file

----------------------------------------------------------------------------------------------

exim-4.conf

######################################################################
#                    MAIN CONFIGURATION SETTINGS                     #
######################################################################


hide mysql_servers = 192.168.0.26::9527/eximdb/exim/pass : \
                     192.168.0.27::3306/eximdb/exim/pass
# primary_hostname =
domainlist local_domains = \
             mysql;select domainName \
                   from domains \
                   where status=1 and domainName='$key'
domainlist relay_to_domains =
hostlist   relay_from_hosts = 127.0.0.1
acl_smtp_rcpt = acl_check_rcpt
# qualify_domain =
# qualify_recipient =
# allow_domain_literals
never_users = root
# host_lookup = *
# rfc1413_hosts = *
# rfc1413_query_timeout = 30s
# sender_unqualified_hosts =
# recipient_unqualified_hosts =
percent_hack_domains = *
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d




######################################################################
#                       ACL CONFIGURATION                            #
#         Specifies access control lists for incoming SMTP mail      #
######################################################################


begin acl

acl_check_rcpt:
  accept  hosts = :
  deny    local_parts   = ^.*[@%!/|]
  accept  local_parts   = postmaster
          domains       = +local_domains
  require verify        = sender
  accept  domains       = +local_domains
          endpass
          message       = unknown user
          verify        = recipient
  accept  domains       = +relay_to_domains
          endpass
          message       = unrouteable address
          verify        = recipient
  accept  hosts         = +relay_from_hosts
  accept  authenticated = *
  deny    message       = relay not permitted




######################################################################
#                      ROUTERS CONFIGURATION                         #
#               Specifies how addresses are handled                  #
######################################################################
#     THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT!       #
# An address is passed to each router in turn until it is accepted.  #
######################################################################


begin routers

# domain_literal:
# driver = ipliteral
# domains = ! +local_domains
# transport = remote_smtp

dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more

virtualuser:
  driver = redirect
  data = \
    ${lookup \
      mysql{select mailAddress,homeDirectory,sizeQuota,fileQuota \
            from users \
            where status=1 and mailAddress='$local_part@$domain'} \
      {value}{no} \
     }




######################################################################
#                      TRANSPORTS CONFIGURATION                      #
######################################################################
#                       ORDER DOES NOT MATTER                        #
#     Only one appropriate transport is called for each delivery.    #
######################################################################


begin transports

remote_smtp:
driver = smtp

virtual_delivery:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add
  user = dm-exim
  group = dm-exim
  mode = 0600
  maildir_format
  create_directory
  directory = ${extract{homeDirectory}{$address_data}}
  quota = ${extract{sizeQuota}{$address_data}}
  quota_warn_message = "\
    To: $local_part@$domain\n\
    Subject: Your mailbox quota.\n\n\
    This message is automatically created \
    by mail delivery software.\n\n\
    The size of your mailbox has exceeded \
    a warning threshold that is\n\
    set by the system administrator.\n"


address_pipe:
driver = pipe
return_output

address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add

address_reply:
driver = autoreply



######################################################################
#                      RETRY CONFIGURATION                           #
######################################################################


begin retry

# Domain               Error       Retries
# ------               -----       -------
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h




######################################################################
#                      REWRITE CONFIGURATION                         #
######################################################################


begin rewrite



######################################################################
#                   AUTHENTICATION CONFIGURATION                     #
######################################################################


begin authenticators

smtp_auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_set_id = $2
  server_condition = \
    ${lookup \
      mysql{select 1 from users \
            where status=1 and mailAddress='$2' and userPassword='$3'} \
      {$value}{no}
     }


smtp_auth_login:
  driver = plaintext
  public_name = LOGIN
  server_set_id = $1
  server_condition = \
    ${lookup \
      mysql{select 1 from users \
            where status=1 and mailAddress='$1' and userPassword='$2'} \
      {$value}{no}
     }
  server_prompts = Username:: : Password::




# End of Exim configuration file