Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

After a long and hard battle, I was able to configure postfix to send mail to outside domains. Now the problem is receiving them from outside domains. I use the pop3 protocol with dovecot, and it seems to work pretty well (except for this problem). Here is my configuration file:

## Dovecot configuration file

# If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration

# "doveconf -n" command gives a clean output of the changed settings. Use it
# instead of copy&pasting files when posting to the Dovecot mailing list.

# '#' character and everything after it is treated as comments. Extra spaces
# and tabs are ignored. If you want to use either of these explicitly, put the
# value inside quotes, eg.: key = "# char and trailing whitespace  "

# Default values are shown for each setting, it's not required to uncomment
# those. These are exceptions to this though: No sections (e.g. namespace {})
# or plugin settings are added by default, they're listed only as examples.
# Paths are also just examples with the real defaults being based on configure
# options. The paths listed here are for configure --prefix=/usr
# --sysconfdir=/etc --localstatedir=/var

# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol

# A comma separated list of IPs or hosts where to listen in for connections. 
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
#listen = *, ::

# Base directory where to store runtime data.
#base_dir = /var/run/dovecot/

# Name of this instance. Used to prefix all Dovecot processes in ps output.
#instance_name = dovecot

# Greeting message for clients.
#login_greeting = Dovecot ready.

# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =

# Sepace separated list of login access check sockets (e.g. tcpwalias_database = 
#login_access_sockets = 

# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
#verbose_proctitle = no

# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes

# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server

# Space separated list of environment variables that are preserved on Dovecot
# startup and passed down to all of its child processes. You can also give
# key=value pairs to always set specific settings.
#import_environment = TZ

##
## Dictionary server settings
##

# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::<name>".

dict {
  #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}

# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!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

protocols = pop3
mail_location = maildir:/home/%u/Maildir

auth default {
    mechanisms = plain login
    passdb pam {
    }
    userdb passwd {
    }
    user = root
    socket listen {
      client {
        path = /var/spool/postfix/private/auth
        mode = 0660
        user = postfix
        group = postfix
      }
    }
}

If I try to telnet dovecot, it works:

telnet localhost 110

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.

I can receive email from other dunnet.usr.sh email accounts, but not from hotmail or gmail accounts. What is wrong? Is SASL the problem?

Here is my main.cf file as well:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.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

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = dunnet.usr.sh
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydomain = domain.tld
mydestination = $mydomain
#dunnet, localhost, localhost, dunnet.usr.sh, smtp-server.maine.rr.com
relayhost = $mydestination
relayhost = smtp-server.maine.rr.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 71.74.56.22
mailbox_size_limit = 51200000
recipient_delimiter = 
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/
local_recipient_maps =
relay_domains = smtp-server.maine.rr.com
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtp_rejtect_unlisted_sender = no   
smtpd_recipient_restrictions =  permit_mynetworks,  permit_sasl_authenticated, reject_unauth_destination

Here is the output of postconf -n:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
home_mailbox = Maildir/
inet_interfaces = all
inet_protocols = all
local_recipient_maps =
mailbox_size_limit = 51200000
mydestination = $mydomain
mydomain = domain.tld
myhostname = dunnet.usr.sh
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 71.74.56.22
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter =
relay_domains = smtp-server.maine.rr.com
relayhost = smtp-server.maine.rr.com
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
postconf: warning: /etc/postfix/main.cf: unused parameter: smtp_rejtect_unlisted_sender=no

After removing the the smtp_reject line and trying again, this is what the mail log says:

Feb  4 19:49:50 dunnet postfix/smtpd[13174]: connect from snt0-omc2-s17.snt0.hotmail.com[65.55.90.92]
Feb  4 19:49:51 dunnet postfix/smtpd[13174]: NOQUEUE: reject: RCPT from snt0-omc2-s17.snt0.hotmail.com[65.55.90.92]: 554 5.7.1 <iandun@dunnet.usr.sh>: Relay access denied; from=<corinthianmonthly@hotmail.com> to=<iandun@dunnet.usr.sh> proto=ESMTP helo=<snt0-omc2-s17.snt0.hotmail.com>
Feb  4 19:49:51 dunnet postfix/smtpd[13174]: disconnect from snt0-omc2-s17.snt0.hotmail.com[65.55.90.92]
share|improve this question
2  
Dovecot doesn't receive mail from outside servers. The MTA does (which in this case, is Postfix). Check your maillog and see what it says, and check your Postfix configuration. –  David W Feb 4 '13 at 23:36
    
I see that you edited the question and included your Postfix main.cf. Please go back and include 1 more thing: From the command line, run "postconf -n" and paste the output. I'm getting up for a while so may not be able to get back to you on this, but it'll help us help you. –  David W Feb 4 '13 at 23:52

2 Answers 2

up vote 0 down vote accepted

Postfix won't accent mail for domains it's not configured for:

554 5.7.1 : Relay access denied

You need to need to add dunnet.usr.sh to the list of domains postfix will accept mail for.

Take a look at What domains to receive mail for to get you started down the right path.

share|improve this answer
    
Thanks. Your solution worked! YES!!!!!!! –  Ian Feb 5 '13 at 18:15

Although this is not related, the very first thing you need to deal with is that typo in smtp_reject_unlisted_sender. Look at the very bottom line of the output of postconf -n:

postconf: warning: /etc/postfix/main.cf: unused parameter: smtp_rejtect_unlisted_sender=no

Once you fix this, reload Postfix, try to send yourself an email from a Gmail or Hotmail address, and check your maillog file (in /var/log) to see if Postfix is complaining about anything.

If nothing shows up in the maillog, see if you get a bounce. If so, what does the bounce say? Us that information to narrow down the problem.

share|improve this answer
    
it didn't work. I posted the log results. –  Ian Feb 5 '13 at 0:51

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.