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