EXIM Configuration Questions
Hi
I need some help on how to integrate the below
MailArchiva ISP Edition
This is setup on a separate server running CentOS release 6.5
WHM Server
Running exim-4.82
I have tried the link below by adding the mentioned solution to the existing exim.conf file ?
Per the mailarchiva tech I need to configured EXIM to send SMTP traffic
/https://www.mailarchiva.com/help/display/MAIL/Exim
My current exim config
######################################################################
# ROUTERS CONFIGURATION #
# Specifies how remote addresses are handled #
######################################################################
# ORDER DOES MATTER #
# A remote address is passed to each in turn until it is accepted. #
######################################################################
# Remote addresses are those with a domain that does not match any item
# in the "local_domains" setting above.
deliver_local_outside_jail:
driver = manualroute
domains = +local_domains
# users outside the jail will not be in /etc/passwd => We need to check if $local_part is in /jail_owner
# we can't just check to see if they exist
# because we still want to be able to mail root
condition = ${if exists {/jail_owner}{1}{0}}
transport = remote_smtp
route_list = "* 127.0.0.1"
# self = send allows us to send outside the jail
# we make sure /home/virtfs does not exist before we get here
# to be safe
self = send
# Place holder
democheck:
driver = redirect
require_files = "+/etc/demouids"
condition = "${if eq {${lookup {$originator_uid} lsearch {/etc/demouids} {$value}}}{}{false}{true}}"
allow_fail
data = :fail: demo accounts are not permitted to relay email
archive_incoming_email_domain_method:
driver = accept
domains = +user_domains
router_home_directory = ${extract{5}{::}{${lookup passwd{${lookup{$domain}lsearch {/etc/userdomains}{$value}}}{$value}}}}
require_files = "$home/etc/$domain/archive/incoming"
condition = ${perl{should_archive_incoming_domain_message}}
headers_add = "${perl{archive_headers}{incoming_domain}}"
unseen
no_verify
transport = archiver_incoming_domain_method
archive_incoming_email_local_user_method:
driver = accept
domains = $primary_hostname
check_local_user
condition = ${perl{should_archive_incoming_localuser_message}}
unseen
no_verify
headers_add = "${perl{archive_headers}{incoming_localuser}}"
transport = archiver_incoming_local_user_method
archive_outgoing_email:
driver = accept
condition = ${perl{should_archive_outgoing_message}}
unseen
no_verify
headers_add = "${perl{archive_headers}{outgoing}}"
transport = archiver_outgoing
######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
######################################################################
# A transport is used only when referenced from a director or a router that
# successfully handles an address.
# This transport is used for delivering messages over SMTP connections.
begin transports
# Place holder
remote_smtp:
driver = smtp
interface = ${if exists {/etc/mailips}{${lookup{$original_domain}lsearch{/etc/mailips}{$value}{${lookup{$sender_address_domain}lsearch{/etc/mailips}{$value}{${lookup{${perl{get_sender_from_uid}}}lsearch*{/etc/mailips}{$value}{}}}}}}}}
helo_data = ${if exists {/etc/mailhelo}{${lookup{$original_domain}lsearch{/etc/mailhelo}{$value}{${lookup{$sender_address_domain}lsearch{/etc/mailhelo}{$value}{${lookup{${perl{get_sender_from_uid}}}lsearch*{/etc/mailhelo}{$value}{$primary_hostname}}}}}}}{$primary_hostname}}
dkim_remote_smtp:
driver = smtp
interface = ${if exists {/etc/mailips}{${lookup{$original_domain}lsearch{/etc/mailips}{$value}{${lookup{$sender_address_domain}lsearch{/etc/mailips}{$value}{${lookup{${perl{get_sender_from_uid}}}lsearch*{/etc/mailips}{$value}{}}}}}}}}
helo_data = ${if exists {/etc/mailhelo}{${lookup{$original_domain}lsearch{/etc/mailhelo}{$value}{${lookup{$sender_address_domain}lsearch{/etc/mailhelo}{$value}{${lookup{${perl{get_sender_from_uid}}}lsearch*{/etc/mailhelo}{$value}{$primary_hostname}}}}}}}{$primary_hostname}}
dkim_domain = $sender_address_domain
dkim_selector = default
dkim_private_key = "/var/cpanel/domain_keys/private/${dkim_domain}"
dkim_canon = relaxed
# This transport is used for local delivery to user mailboxes. By default
# it will be run under the uid and gid of the local user, and requires
# the sticky bit to be set on the /var/mail directory. Some systems use
# the alternative approach of running mail deliveries under a particular
# group instead of using the sticky bit. The commented options below show
# how this can be done.
local_delivery:
driver = appendfile
delivery_date_add
envelope_to_add
directory = "${extract{5}{:}{${lookup passwd{$local_part}{$value}}}}/mail"
maildir_use_size_file
maildir_quota_directory_regex = ^(?:cur|new|\.(?!Trash$)[^\@]+)$
maildir_format
maildir_tag = ,S=$message_size
quota_size_regex = ,S=(\d+)
mode = 0660
return_path_add
group = ${extract{3}{:}{${lookup passwd{$local_part}{$value}}}}
user = $local_part
shadow_condition = ${if exists {${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/.cpanel/rim/bis/$local_part}{1}{0}}
shadow_transport = rim_bis_notifier_local_user
rim_bis_notifier_local_user:
driver = pipe
headers_only
command = /usr/local/cpanel/bin/rim_bis_notifier "${local_part}"
group = ${extract{3}{:}{${lookup passwd{$local_part}{$value}}}}
user = $local_part
log_output = true
current_directory = "/tmp"
return_fail_output = true
return_path_add = false
local_delivery_spam:
driver = appendfile
delivery_date_add
envelope_to_add
directory = "${extract{5}{:}{${lookup passwd{$local_part}{$value}}}}/mail/.spam"
maildir_use_size_file
maildir_quota_directory_regex = ^(?:cur|new|\.(?!Trash$)[^\@]+)$
maildir_format
maildir_tag = ,S=$message_size
quota_size_regex = ,S=(\d+)
group = ${extract{3}{:}{${lookup passwd{$local_part}{$value}}}}
mode = 0660
return_path_add
user = $local_part
# This transport is used for handling pipe deliveries generated by alias
# or .forward files. If the pipe generates any standard output, it is returned
# to the sender of the message as a delivery error. Set return_fail_output
# instead of return_output if you want this to happen only when the pipe fails
# to complete normally. You can set different transports for aliases and
# forwards if you want to - see the references to address_pipe below.
address_directory:
driver = appendfile
maildir_tag = ,S=$message_size
quota_size_regex = ,S=(\d+)
maildir_format
maildir_use_size_file
maildir_quota_directory_regex = ^(?:cur|new|\.(?!Trash$)[^\@]+)$
mode = 0660
delivery_date_add
envelope_to_add
return_path_add
address_pipe:
driver = pipe
return_output
virtual_address_pipe:
driver = pipe
group = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
return_output
user = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
jailed_address_pipe:
driver = pipe
force_command
command = /usr/local/cpanel/bin/jailexec $address_pipe
return_output
jailed_virtual_address_pipe:
driver = pipe
force_command
command = /usr/local/cpanel/bin/jailexec $address_pipe
user = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
group = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
return_output
cagefs_address_pipe:
driver = pipe
force_command
command = /bin/cagefs_enter $address_pipe
return_output
cagefs_virtual_address_pipe:
driver = pipe
force_command
command = /bin/cagefs_enter $address_pipe
user = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
group = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
return_output
# This transport is used for handling deliveries directly to files that are
# generated by aliassing or forwarding.
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
# This transport is used for handling autoreplies generated by the filtering
# option of the forwardfile director.
virtual_userdelivery_spam:
driver = appendfile
delivery_date_add
envelope_to_add
directory = "${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/mail/${domain}/${local_part}/.spam"
maildir_use_size_file
maildir_quota_directory_regex = ^(?:cur|new|\.(?!Trash$)[^\@]+)$
maildir_format
maildir_tag = ,S=$message_size
quota_size_regex = ,S=(\d+)
mode = 0660
quota = "${if exists{${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/etc/${domain}/quota} {${lookup{$local_part}lsearch*{${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/etc/${domain}/quota}{$value}}} {}}"
quota_is_inclusive = false
quota_directory = "${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/mail/${domain}/${local_part}"
return_path_add
user = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
group = ${extract{3}{:}{${lookup passwd{${lookup{$domain}lsearch* {/etc/userdomains}{$value}}}{$value}}}}
virtual_userdelivery:
driver = appendfile
delivery_date_add
envelope_to_add
directory = "${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/mail/${domain}/${local_part}"
maildir_use_size_file
maildir_quota_directory_regex = ^(?:cur|new|\.(?!Trash$)[^\@]+)$
maildir_format
maildir_tag = ,S=$message_size
quota_size_regex = ,S=(\d+)
mode = 0660
quota = "${if exists{${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/etc/${domain}/quota} {${lookup{$local_part}lsearch*{${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/etc/${domain}/quota}{$value}}} {}}"
quota_is_inclusive = false
quota_directory = "${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/mail/${domain}/${local_part}"
return_path_add
user = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
group = ${extract{3}{:}{${lookup passwd{${lookup{$domain}lsearch* {/etc/userdomains}{$value}}}{$value}}}}
shadow_condition = ${if exists {${extract{5}{:}{${lookup passwd{${lookup{$domain}lsearch*{/etc/userdomains}{$value}}}{$value}}}}/.cpanel/rim/bis/$local_part@$domain}{1}{0}}
shadow_transport = rim_bis_notifier_virtual_user
rim_bis_notifier_virtual_user:
driver = pipe
headers_only
command = /usr/local/cpanel/bin/rim_bis_notifier "${local_part}@${domain}"
user = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
group = ${extract{3}{:}{${lookup passwd{${lookup{$domain}lsearch* {/etc/userdomains}{$value}}}{$value}}}}
log_output = true
current_directory = "/tmp"
return_fail_output = true
return_path_add = false
address_reply:
driver = autoreply
archiver_incoming_local_user_method:
driver = appendfile
delivery_date_add
envelope_to_add
user = $local_part
group = ${extract{3}{:}{${lookup passwd{$local_part}{$value}}}}
directory = "${extract{5}{::}{${lookup passwd{$local_part}{$value}}}}/mail/archive/${perl{get_incoming_domain}}/.incoming.${perl{YYYYMMDDGMT}}"
maildir_quota_directory_regex = ^(?:cur|new|\.(?!Trash$)[^\@]+)$
maildir_format
maildir_tag = ,S=$message_size
maildir_use_size_file
quota_size_regex = ,S=(\d+)
mode = 0660
return_path_add
archiver_incoming_domain_method:
driver = appendfile
delivery_date_add
envelope_to_add
user = "${lookup{$domain}lsearch* {/etc/userdomains}{$value}}"
group = ${extract{3}{:}{${lookup passwd{${lookup{$domain}lsearch* {/etc/userdomains}{$value}}}{$value}}}}
directory = "$home/mail/archive/$domain/.incoming.${perl{YYYYMMDDGMT}}"
maildir_quota_directory_regex = ^(?:cur|new|\.(?!Trash$)[^\@]+)$
maildir_format
maildir_tag = ,S=$message_size
maildir_use_size_file
quota_size_regex = ,S=(\d+)
mode = 0660
return_path_add
archiver_outgoing:
driver = appendfile
delivery_date_add
envelope_to_add
user = ${perl{get_outgoing_sender_sysuser}}
group = ${extract{3}{:}{${lookup passwd{${perl{get_outgoing_sender_sysuser}}}{$value}}}}
directory = "${extract{5}{::}{${lookup passwd{${perl{get_outgoing_sender_sysuser}}}{$value}}}}/mail/archive/${perl{get_outgoing_sender_domain}}/.${perl{get_outgoing_archive_directory}}.${perl{YYYYMMDDGMT}}"
maildir_quota_directory_regex = ^(?:cur|new|\.(?!Trash$)[^\@]+)$
maildir_format
maildir_tag = ,S=$message_size
maildir_use_size_file
quota_size_regex = ,S=(\d+)
mode = 0660
return_path_add-
Hello :) Please ensure that any custom changes you make to the Exim configuration are completed through: "WHM Home " Service Configuration " Exim Configuration Manager " Advanced Editor" This will ensure the changes are preserved. Note that you may need to consult with the support for the application you are using for assistance with the exact changes you are required to make. Thank you. 0
Please sign in to leave a comment.
Comments
1 comment