
Postfix, Dovecot을 SASL로, Rainloop를 WebClient로 사용하여 메일 서버를 설정했습니다. 저는 MySQL을 사용하고 있습니다(물어본 후내 마지막 질문) 내 사용자 계정과 비밀번호에 대한 정보가 입력되어 있고 제대로 작동하고 있지만 직면한 두 가지 문제가 있습니다. [두 번째 문제가 해결되었습니다.]
이메일을 받을 수 없습니다! (직원들이 이메일을 통해 연락하기만 하면 됩니다. 지금은 이메일을 받을 수 없습니다. 한 직원에서 다른 직원에게 이메일을 보내면 실패 징후를 나타내는 로그 파일을 찾을 수 없습니다. 실제로 무엇인지 모르겠습니다. 수신이 안되는 문제가 있을 수 있습니다.)
[해결됨] ThunderBird는 SMTP와 IMAP 모두에 대한 인증서 확인을 요청하므로 사용자는 ThunderBird를 통해 로그인할 수 있습니다. 즉, 로그인할 때 인증서를 수락해야 하고 처음 메일을 보낼 때 다른 인증서를 수락해야 작동합니다. 그러나 Outlook은 인증서를 한 번만 요청하고 IMAP을 요청하기 때문에 로그인할 수 없습니다.
내 구성 파일은 다음과 같습니다.
/etc/postfix/main.cf
myhostname = mail.domain.tld
mydomain = domain.tld
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#home_mailbox = Maildir/
#relayhost =
#mynetworks = 127.0.0.0/8, 172.16.67.68, [::1]/128
smtpd_tls_cert_file=/etc/ssl/certs/mailcert.pem
smtpd_tls_key_file=/etc/ssl/private/mail.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_security_level=may
#smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
#
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks
# reject_unauth_destination
#alias_maps = hash:/etc/aliases
#alias_database = hash:/etc/aliases
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/mysql-virtual-email2email.cf
mailbox_size_limit = 209715200
message_size_limit = 57671680
/etc/postfix/master.cf
smtp inet n - n - - smtpd
pickup unix n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_wrappermode=no
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
3개의 DB 테이블(virtual_domains, virtual_users, virtual_aliases)이 있습니다. Postfix는 이들 모두를 알고 있으며 명령을 사용하여 입증되었으며 postmap
구성은 mysql-virtual-mailbox-domains.cf, mysql-virtual-mailbox-maps.cf, mysql-virtual-email2email.cf, mysql-에 설정되어 있습니다. 가상 별칭-maps.cf.
/etc/dovecot/dovecot.conf
disable_plaintext_auth = yes
ssl=required
ssl_cert = </etc/ssl/certs/mailcert.pem
ssl_key = </etc/ssl/private/mail.key
!include conf.d/*.conf
# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
}
protocol imap {
mail_plugins = " autocreate"
# $mail_plugins = autocreate
}
plugin {
autocreate = Trash
autocreate2 = Sent
autosubscribe = Trash
autosubscribe2 = Sent
}
/etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
/etc/dovecot/conf.d/10-mail.conf
namespace inbox {
# Namespace type: private, shared or public
#type = private
# Hierarchy separator to use. You should use the same separator for all
# namespaces or some clients get confused. '/' is usually a good one.
# The default however depends on the underlying mail storage format.
#separator =
# Prefix required to access this namespace. This needs to be different for
# all namespaces. For example "Public/".
#prefix =
# Physical location of the mailbox. This is in same format as
# mail_location, which is also the default for it.
#location =
# There can be only one INBOX, and this setting defines which namespace
# has it.
inbox = yes
# If namespace is hidden, it's not advertised to clients via NAMESPACE
# extension. You'll most likely also want to set list=no. This is mostly
# useful when converting from another server with different namespaces which
# you want to deprecate but still keep working. For example you can create
# hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/".
#hidden = no
# Show the mailboxes under this namespace with LIST command. This makes the
# namespace visible for clients that don't support NAMESPACE extension.
# "children" value lists child mailboxes, but hides the namespace prefix.
#list = yes
# Namespace handles its own subscriptions. If set to "no", the parent
# namespace handles them (empty prefix should always have this as "yes")
#subscriptions = yes
}
mbox_write_locks = fcntl
mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail
처음부터 시작하더라도 어떤 제안이라도 받아들일 준비가 되어 있습니다. 하지만 정확하고 자세하게 설명해주세요. 저는 메일 서버 설정 전문가가 아닙니다. 미리 감사드립니다.
다른 것이 필요한 경우 알려주시면 필수 구성 파일로 질문을 업데이트하겠습니다.
업데이트:
여러분, 모든 것이 올바른 것 같은데 왜 이메일을 받을 수 없는지 모르겠습니다. 누구든지 도와주실 수 있나요? 어떤 아이디어??