From your message I understand you to have pointed your MX record to your DNS server rather than your mail server. It should point to your mail server or be routed to your mail server. Have you done an MX Record lookup to confirm the public entry for your MX Record? Try www.dnsstuff.com to confirm the MX is pointed to the right host IP.
Do you have your Internet router configured to forward (internally) all inbound SMTP traffic from the mail server’s public IP to the mail server’s private IP? What type of router do you have and what commands have you entered to forward.
I would not put your external address for the mail server on your internal DNS, only the internal address.
When you have the above configured correctly, try a telnet to port 25 (e.g. telnet servername portnumber) against the public address of the mail server. You will need to do so from a publicly addressed PC and not an internally addressed PC. If you can reach the mail server via telnet:25 then you should be able to receive mail from the Internet.
Look at the following support article from MS. Even though this is a MS KB for Exchange the same process applies to any SMTP-compliant mail server.