src*_*091 1 email-server postfix dovecot
我知道这里有很多类似的问题,但没有一个对我有帮助。
所以我有一个带有 postfix 的 Debian 7.0 服务器,并且 dovecot 使用自签名证书处理它。当我通过 SSH 连接到服务器时,我可以使用 telnet 向其他服务器发送电子邮件,但我无法通过 Thunderbird 客户端发送电子邮件,并显示以下错误消息:
发送邮件时发生错误。邮件服务器响应:
5.7.1 : Relay access denied。请检查邮件收件人 anton.kumaigorodskiy@outlok.com 并重试。
首先,我的 ISP 阻止了端口 25,所以我正在使用端口 465,如下所示:

这是我在设置时编辑的 master.cf 部分:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - - - - smtpd
#smtp inet n - - - 1 postscreen
#smtpd pass - - - - - smtpd
#dnsblog unix - - - - 0 dnsblog
#tlsproxy unix - - - - 0 tlsproxy
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_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 - - - - smtpd
Run Code Online (Sandbox Code Playgroud)
这是我的 main.cf:
myhostname = mail.server.com
myorigin = /etc/mailname
mydestination = mail.server.com, server.com, localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
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_protocols = !SSLv2, !SSLv3
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtp_tls_loglevel = 1
smtpd_tls_loglevel = 1
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
inet_protocols = all
Run Code Online (Sandbox Code Playgroud)
这是我的 dovecot.conf:
disable_plaintext_auth = no
mail_privileged_group = mail
mail_location = mbox:~/mail:INBOX=/var/mail/%u
userdb {
driver = passwd
}
passdb {
args = %s
driver = pam
}
protocols = " imap"
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
}
ssl=required
ssl_cert =< /etc/ssl/certs/mailcert.pem
ssl_key =< /etc/ssl/private/mail.key
Run Code Online (Sandbox Code Playgroud)
最后是发生错误时我的 mail.log 的内容:
Nov 14 13:17:24 Test postfix/smtpd[10720]: connect from 49-3-134-95.pool.ukrtel.net[95.134.3.49]
Nov 14 13:17:25 Test postfix/smtpd[10720]: Anonymous TLS connection established from 49-3-134-95.pool.ukrtel.net[95.134.3.49]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Nov 14 13:17:25 Test postfix/smtpd[10720]: NOQUEUE: reject: RCPT from 49-3-134-95.pool.ukrtel.net[95.134.3.49]: 554 5.7.1 <anton.kumaigorodskiy@outlok.com>: Relay access denied; from=<anton@server.com> to=<anton.kumaigorodskiy@outlok.com> proto=ESMTP helo=<[192.168.0.101]>
Nov 14 13:17:30 Test postfix/smtpd[10720]: disconnect from 49-3-134-95.pool.ukrtel.net[95.134.3.49]
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能解决这个问题?
================ 更新 ====================
阅读http://www.postfix.org/SASL_README.html和http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL 后,这里是我所做的更改:
新大师.cf:
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_local_domain=$myhostname
smtps inet n - - - - smtpd
Run Code Online (Sandbox Code Playgroud)
添加到 main.cf:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
Run Code Online (Sandbox Code Playgroud)
添加到 dovecot.conf:
auth_mechanisms = plain login
Run Code Online (Sandbox Code Playgroud)
仍然没有运气,当我尝试发送一封信时,我遇到了完全相同的错误。
| 归档时间: |
|
| 查看次数: |
17180 次 |
| 最近记录: |