2013-08-19 24 views
5

Ho questo errore 554 Relay access denied quando provo a inviare email dal mio client Outlook.Linux postfix/dovecot 554 Accesso relé negato

Posso leggere la posta in arrivo ma non posso inviare.

Se mi collego con telnet localhost 25 posso inviare e-mail esterne, ma con il client Outlook non funziona.

Ecco il mio postfix e 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 
} 

Qualche idea?

+0

dove è il vostro 'client Outlook' connesso? Stai usando l'autenticazione? Hai solo localhost in "mynetworks", potresti voler aggiungere i computer di rete che dovrebbero poter inviare email da lì. – mata

+0

è sul mio computer di casa. Sì, uso ssl. mynetwork? Quindi dovrei aggiungere il mio IP di inet del computer di casa ?? –

+0

no, non intendo ssl (crittografia) ma autenticazione (hai impostato Outlook per autenticare il tuo utente quando invii messaggi tramite smtp tramite postfix?). 'mynetwork' consente l'accesso al relay senza autenticazione dalle reti locali, se il tuo server è da qualche parte su internet, allora dovresti usare meglio smtp_auth. – mata

risposta

5

Se si utilizza una versione suffisso più recente poi 2,10, allora avete bisogno di aggiungere l'opzione smtpd_relay_restrictions come descritto 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... 

Dopo di che, qualsiasi utente SASL autenticato dovrebbe essere in grado di inviare mail attraverso il server che usa smtp.

+1

questo non ha funzionato per me. Ho lo stesso errore. – neckTwi

0

Per il mio postfix 2.6.6 su Amazon AWS EC2, risultava che avevo configurato erroneamente le impostazioni "mydestination" e "relay_domains" in main.cf. valori corretti (quelli che hanno lavorato per me), sono stati:

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

+0

il mio nome di dominio è 'necktwi.com'. Ho rinominato il server in 'ec2' quindi myhostname =' ec2.necktwi.com' e mydomain = 'necktwi.com'. eppure ho lo stesso errore – neckTwi