Mail Server Can't Receive Email But Can Send Email - Postfix, Dovecot, MySQL

11,228

Solution 1

From the config you posted, you had "mydestination" right, but then you commented it out and just set it to "localhost". This would definitely prevent you from receiving mail from the outside world.

Solution 2

If you are using a residential connection, your ISP has probably blocked inbound SMTP connections on port 25. Since running servers is typically forbidden by the Terms of Service on residential Internet accounts.

Share:
11,228

Related videos on Youtube

duper51
Author by

duper51

Just a man who dreams of code.

Updated on September 18, 2022

Comments

  • duper51
    duper51 over 1 year

    I have server where I want to set up a mail server to let me receive and send email from my domain. I'm currently having a problem where while I am authorized to send email from the server, but according to the logs, am not authorized to receive email from any provider other than my own network.

    I'm going off of this tutorial, which shows how to configure a mail server using Postfix, Dovecot, and using MySQL as the backend (here).

    Appropriate logs:

    Jan  6 13:55:49 mail postfix/smtpd[26857]: permit_mynetworks: mail-la0-f50.google.com 209.85.215.50
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_hostname: mail-la0-f50.google.com ~? 127.0.0.0/8
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_hostaddr: 209.85.215.50 ~? 127.0.0.0/8
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_hostname: mail-la0-f50.google.com ~? 127.0.0.2/32
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_hostaddr: 209.85.215.50 ~? 127.0.0.2/32
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_hostname: mail-la0-f50.google.com ~? 192.99.104.50/32
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_hostaddr: 209.85.215.50 ~? 192.99.104.50/32
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_hostname: mail-la0-f50.google.com ~? [::1]/128
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_hostaddr: 209.85.215.50 ~? [::1]/128
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_list_match: mail-la0-f50.google.com: no match
    Jan  6 13:55:49 mail postfix/smtpd[26857]: match_list_match: 209.85.215.50: no match
    Jan  6 13:55:49 mail postfix/smtpd[26857]: generic_checks: name=permit_mynetworks status=0
    Jan  6 13:55:49 mail postfix/smtpd[26857]: generic_checks: name=reject_unauth_destination
    Jan  6 13:55:49 mail postfix/smtpd[26857]: reject_unauth_destination: [email protected]
    Jan  6 13:55:49 mail postfix/smtpd[26857]: permit_auth_destination: [email protected]`
    Jan  6 13:55:49 mail postfix/smtpd[26857]: ctable_locate: leave existing entry key [email protected]`
    Jan  6 13:55:49 mail postfix/smtpd[26857]: NOQUEUE: reject: RCPT from mail-la0-f50.google.com[209.85.215.50]: 554 5.7.1 <me@d$`
    Jan  6 13:55:49 mail postfix/smtpd[26857]: generic_checks: name=reject_unauth_destination status=2`
    Jan  6 13:55:49 mail postfix/smtpd[26857]: > mail-la0-f50.google.com[209.85.215.50]: 554 5.7.1 <[email protected]>: Relay access denied`
    Jan  6 13:55:49 mail postfix/smtpd[26857]: < mail-la0-f50.google.com[209.85.215.50]: DATA`
    Jan  6 13:55:49 mail postfix/smtpd[26857]: > mail-la0-f50.google.com[209.85.215.50]: 554 5.5.1 Error: no valid recipients`
    Jan  6 13:55:49 mail postfix/smtpd[26857]: < mail-la0-f50.google.com[209.85.215.50]: QUIT`
    Jan  6 13:55:49 mail postfix/smtpd[26857]: > mail-la0-f50.google.com[209.85.215.50]: 221 2.0.0`
    

    My main.cf:

    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
    smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
    smtpd_tls_key_file=/etc/ssl/private/dovecot.pem
    smtpd_use_tls=yes
    smtpd_tls_auth_only = yes
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    virtual_transport = lmtp:unix:private/dovecot-lmtp
    virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
    smtpd_recipient_restrictions =
          permit_sasl_authenticated,
          permit_mynetworks,
          reject_unauth_destination
    smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
    # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.
    myhostname = duper51.com
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    #mydestination = duper51.com, mail.duper51.com, localhost
    mydestination = localhost
    relayhost =
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    inet_protocols = ipv4
    
  • duper51
    duper51 over 9 years
    Unfortunately, in the tutorial, they tell me to set it to localhost, because that way it reads from the MySQL vHosts. I also tried it with the configuration I had and it still didn't work. Same errors in log.
  • Dale Anderson
    Dale Anderson over 9 years
    I'll dig up a working config from one of my mail servers and paste it in here. Will need a day or so to get back to you.
  • duper51
    duper51 over 9 years
    Great! Thanks for your help! If you choose to edit your answer with the config I'll make it the actual answer.
  • Dale Anderson
    Dale Anderson over 9 years
    OK, so here's my output from postconf -n (non-default config values): pastebin.com/eh14SHW0 - this is a live server with virtual users, spam filtering, etc. So a lot of it may not be relevant, but you should be able to pick through and compare what's different, and hopefully make adjustments. The only thing I've adjusted is to replace actual host / domain names and IP addresses with fake values.