1

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 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> 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]
2
  • 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, 2013 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, 2013 at 23:52

2 Answers 2

0

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.

0
0

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.

1
  • it didn't work. I posted the log results.
    – Ian
    Feb 5, 2013 at 0:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .