2013-08-19 21 views
5

Tôi gặp lỗi này 554 Relay access denied khi cố gửi email từ ứng dụng khách xem của mình.Linux postfix/dovecot 554 Truy cập chuyển tiếp bị từ chối

Tôi có thể đọc thư đến nhưng không thể gửi.

Nếu tôi kết nối với telnet localhost 25 tôi có thể gửi email bên ngoài, nhưng với ứng dụng khách xem, nó không hoạt động.

Dưới đây là postfix và dovecot tôi 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 
} 

Bất kỳ suy nghĩ?

+0

nơi được 'triển vọng khách hàng của bạn kết nối từ đâu? Bạn đang sử dụng xác thực? Bạn chỉ có localhost trong 'mynetworks', bạn có thể muốn thêm các máy tính mạng nên được phép gửi thư từ đó. – mata

+0

nó ở máy tính ở nhà của tôi. Có, tôi sử dụng ssl. mạng lưới của tôi ? Vì vậy, tôi nên thêm máy tính gia đình của tôi inet ip ?? –

+0

không, tôi không có nghĩa là ssl (mã hóa) nhưng xác thực (có bạn thiết lập triển vọng để xác thực người dùng của bạn khi gửi tin nhắn qua smtp qua postfix?). 'mynetwork' cho phép truy cập relay mà không cần xác thực từ các mạng cục bộ, nếu máy chủ của bạn ở đâu đó trên internet thì tốt hơn bạn nên sử dụng smtp_auth. – mata

Trả lời

5

Nếu bạn sử dụng một phiên bản postfix sau đó mới hơn 2.10, sau đó bạn cần phải thêm tùy chọn smtpd_relay_restrictions như mô tả 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... 

Sau đó, bất kỳ người sử dụng sasl chứng thực sẽ có thể gửi mail thông qua máy chủ sử dụng smtp.

+1

điều này không có tác dụng đối với tôi. Tôi gặp lỗi tương tự. – neckTwi

0

Đối với postfix 2.6.6 của tôi trên Amazon AWS EC2, hóa ra tôi đã cấu hình sai cài đặt "mydestination" và "relay_domains" trong main.cf. giá trị đúng (những người mà làm việc cho tôi), là:

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

+0

tên miền của tôi là 'necktwi.com'. Tôi đã đổi tên máy chủ thành 'ec2' để myhostname =' ec2.necktwi.com' và mydomain = 'necktwi.com'. nhưng tôi gặp lỗi tương tự – neckTwi

Các vấn đề liên quan