Postfix+Dovecot+saslauthd can’t recieve email from external domians

dovecotemailpostfixsaslauthdsmtp

On my Linode I followed this doc to setup a mail server.

Now I can send email to any domain but can't receive from other domains!
I mean 001@mydomain.com can recieve from 002@mydomain.com but can't recieve any mail from xxx@gmail/yahoo/…com.
I checked my vmail (Maildir) too, mails from other domains aren't there.

I received Delivery Status Notification (Delay) from gmail(after about 24 hrs):

Delivery to the following recipient has been delayed:
myname@mydomain.com
Message will be retried for 2 more day(s)
Technical details of temporary failure: 
The recipient server did not accept our requests to connect. Learn more at http://mail.google.com/support/bin/answer.py?answer=7720 
[mail.mydomain.com. (10): Connection refused]

And it's my settings:
I have a MX Record:

mail.mydomain.com

and an A/AAAA Records:

mail (with same ip as my server)  

My /etc/hosts

127.0.0.1       localhost.localdomain   localhost
(server ip)     hostname.mydomain.com  hostname

My /etc/default/saslauthd

START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

My /etc/aliases

postmaster: root
root: admin@mydomain.com

My /usr/share/postfix/main.cf

protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

namespace private {
    separator = .
    prefix = INBOX.
    inbox = yes
}

protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = admin@mydomain.com
    mail_plugins = sieve
    global_script_path = /home/vmail/globalsieverc
}

protocol pop3 {
    pop3_uidl_format = %08Xu%08Xv
}

auth default {
    user = root

    passdb sql {
        args = /etc/dovecot/dovecot-sql.conf
    }

    userdb static {
        args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
    }

    socket listen {
        master {
            path = /var/run/dovecot/auth-master
            mode = 0600
            user = vmail
        }

        client {
            path = /var/spool/postfix/private/auth
            mode = 0660
            user = postfix
            group = postfix
        }
    }

My /usr/share/postfix/main.cf

# 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 = /usr/share/doc/postfix

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.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 = hostname.mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = hostname.mydomain.com, localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = (server ip), 127.0.0.1
html_directory = /usr/share/doc/postfix/html
message_size_limit = 30720000
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destinationvirtual_create_maildirsize = yes
virtual_maildir_extended = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps        $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

My iptables rules:
(I use 2525 instead of 25 port and it's open in my machine and isp, i can telenet on it)

 pkts bytes target     prot opt in     out     source               destination         
  130  7820 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:smtp 
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:25 
  388 33099 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:2525 
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:2525 
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:100 
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:pop3 
   65  3538 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:pop3 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:26 
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:26 
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:pop3s 
 2355  184K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:pop3s 

Logs
Nothing adds to my /var/log/mail.log when I should receive other domains mail, but it seems ok when I try to receive mails by mail clients.

Apr 14 07:53:51 hostname dovecot: pop3-login: Login: user=<myname@mydomain.com>, method=PLAIN, rip=94.182.127.182, lip=178.79.152.29, TLS
Apr 14 07:53:52 hostname dovecot: POP3(myname@mydomain.com): Disconnected: Logged out top=0/0, retr=0/0, del=0/7, size=6546

Nothing happens to /home/vmail/dovecot-deliver.log when I sould receive mail from other domains but in case of same domain email seems normal:

2011-04-14 05:42:53 deliver(myname@mydomain.com): Info: msgid=<FA382109-99D9-4C8F-8AD9-1C88C73C60CC@mydomain.com>: saved mail to INBOX

I checked mail by VMail, mutt, Apple Mail and Thunderbird and it's my settings on mail clients:
Account Type: pop3
Incoming Mail Server: mail.mydomain.com
Username: myname@mydomain.com
Password: XXXXX
Outgoing Mail Server:
Server Name: mail.mydomain.com
Port: 2525
Use SSL
Authenitocation: Password
Username: myname@mydomain.com
Password: XXXXX

Best Answer

Since absolutely nothing is logged in your /var/mail/mail.log and your chains show zero traffic coming in to tcp/25, I believe your ISP is blocking incoming traffic on tcp/25. This is normal practice for home users. Unless you have a business class connection, ISPs do not allow traffic to their customers destined for tcp/25.

You'll need some type of external service like DynDNS' mailhop. You set DynDNS up as your MX and they relay the mail to your server on an open destination port like 2525.

EDIT: to be clear; real internet email only ever travels on port tcp/25. You can't just open a port like 2525 and expect it to work.