Smtp

exim + courier + squirrelmail 郵件遞送在錯誤的目錄中

  • January 16, 2015

我剛剛安裝了一個電子郵件伺服器,使用 exim 用於 SMTP,courier(-imap) 用於通過 IMAPv4 獲取郵件,並將 squirrelmail 作為最終使用者的 Web 客戶端。一切正常。但是當我發送一封電子郵件到我的伺服器上的地址時,它儲存在文件/var/mail/<UNIX-USERNAME>中,而不是我創建的郵件目錄中/home/<UNIX-USERNAME>/Maildir

我也可以登錄 squirrelmail。發送郵件也可以。已發送電子郵件的副本儲存在正確的目錄中。那麼,我如何告訴 exim 將收到的電子郵件發送到/home/<UNIX-USERNAME>/Maildir/INBOX

編輯:我的 exim 配置(刪除評論以獲得更好的視圖)

primary_hostname = renamed-gaming.com
domainlist local_domains = @
domainlist relay_to_domains =
hostlist   relay_from_hosts = localhost

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data

#tls_certificate = /etc/ssl/exim.crt
#tls_privatekey = /etc/ssl/exim.pem

daemon_smtp_ports = 25 : 465 : 587
tls_on_connect_ports = 465

never_users = root

host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 5s

ignore_bounce_errors_after = 2d

timeout_frozen_after = 7d

begin acl

acl_check_rcpt:

 accept  hosts = :
         control = dkim_disable_verify

 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

 require verify        = sender

 accept  hosts         = +relay_from_hosts
         control       = submission
         control       = dkim_disable_verify

 accept  authenticated = *
         control       = submission
         control       = dkim_disable_verify

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

 require verify = recipient

 accept

acl_check_data:

 accept

begin routers

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

system_aliases:
 driver = redirect
 allow_fail
 allow_defer
 data = ${lookup{$local_part}lsearch{/etc/aliases}}
# user = exim
 file_transport = address_file
 pipe_transport = address_pipe

userforward:
 driver = redirect
 check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
 file = $home/.forward
# allow_filter
 no_verify
 no_expn
 check_ancestor
 file_transport = address_file
 pipe_transport = address_pipe
 reply_transport = address_reply

localuser:
 driver = accept
 check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
 transport = local_delivery
 cannot_route_message = Unknown user

begin transports

remote_smtp:
 driver = smtp


local_delivery:
 driver = appendfile
 file = /var/mail/$local_part
 delivery_date_add
 envelope_to_add
 return_path_add
# group = mail
# mode = 0660

address_pipe:
 driver = pipe
 return_output

address_file:
 driver = appendfile
 delivery_date_add
 envelope_to_add
 return_path_add

address_reply:
 driver = autoreply


# Address or Domain    Error       Retries
# -----------------    -----       -------

*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h

begin rewrite

begin authenticators

在 Exim 中,您必須正確配置本地傳送路由器的傳輸。它現在顯然正在使用配置為傳遞到的傳輸/var/mail/$local_part,查看您是否有配置為傳遞到目錄 = $home/Maildir 的傳輸並使用它。

在不知道您的配置目前看起來如何的情況下,無法提供更詳細的資訊,但是我認為通過上述提示您應該能夠修復它。

引用自:https://unix.stackexchange.com/questions/179337