Linux postfix/dovecot 554 Relay access denied

匿名 (未验证) 提交于 2019-12-03 01:18:02

问题:

I have this error 554 Relay access denied when trying to send email from my outlook client.

I can read incoming mails but cannot send.

If i connect with telnet localhost 25 i can send external emails, but with outlook client it doesn't work.

Here's my postfix and dovecot config :

postconf -n

alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix inet_interfaces = all mailbox_size_limit = 0 mydestination = localhost myhostname = mail.mydomain.com mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no recipient_delimiter = + relayhost = smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/certs/dovecot.pem smtpd_tls_key_file = /etc/ssl/private/dovecot.pem smtpd_use_tls = yes virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_transport = lmtp:unix:private/dovecot-lmtp 

doveconf -n

# 2.1.7: /etc/dovecot/dovecot.conf # OS: Linux 3.9.3-x86_64-linode33 x86_64 Ubuntu 13.04 ext3 auth_mechanisms = plain login mail_location = maildir:/var/mail/vhosts/%d/%n mail_privileged_group = mail namespace inbox {   inbox = yes   location =    mailbox Drafts {     special_use = \Drafts   }   mailbox Junk {     special_use = \Junk   }   mailbox Sent {     special_use = \Sent   }   mailbox "Sent Messages" {     special_use = \Sent   }   mailbox Trash {     special_use = \Trash   }   prefix =  } passdb {   args = /etc/dovecot/dovecot-sql.conf.ext   driver = sql } passdb {   args = /etc/dovecot/dovecot-sql.conf.ext   driver = sql } protocols = imap pop3 lmtp service auth-worker {   user = vmail } service auth {   unix_listener /var/spool/postfix/private/auth {     group = postfix     mode = 0666     user = postfix   }   unix_listener auth-userdb {     mode = 0600     user = vmail   }   user = dovecot } service imap-login {   inet_listener imap {     port = 0   } } service lmtp {   unix_listener /var/spool/postfix/private/dovecot-lmtp {     group = postfix     mode = 0600     user = postfix   } } service pop3-login {   inet_listener pop3 {     port = 0   } } ssl = required ssl_cert = </etc/dovecot/dovecot.pem ssl_key = </etc/dovecot/private/dovecot.pem userdb {   args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n   driver = static } userdb {   args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n   driver = static } 

Any thoughts?

回答1:

If you use a postfix version newer then 2.10, then you need to add the smtpd_relay_restrictions option as described here:

 # With Postfix 2.10 and later, the mail relay policy is # preferably specified under smtpd_relay_restrictions. /etc/postfix/main.cf:     smtpd_relay_restrictions =     permit_mynetworks     permit_sasl_authenticated     reject_unauth_destination  # Older configurations combine relay control and spam control under # smtpd_recipient_restrictions. To use this example with Postfix ≥ # 2.10 specify "smtpd_relay_restrictions=". /etc/postfix/main.cf:     smtpd_recipient_restrictions =     permit_mynetworks     permit_sasl_authenticated     reject_unauth_destination         ...other rules... 

After that, any sasl authenticated user should be able to send mails through the server using smtp.



回答2:

For my postfix 2.6.6 on Amazon AWS EC2, it turned out that i had wrong configuration of "mydestination" and "relay_domains" settings in main.cf. Correct values (ones which worked for me), were:

mydestination = $myhostname, $mydomain, localhost relay_domains = $mydestination



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!