21 Sep 10 5:28
Ok, we've ruled a couple of things out. That is good. Using a private IP for the computer and a public IP on the router will work just fine. You didn't mention if the public IP is static or dynamic. If it is a dynamic IP that could be your problem and if it is one way to rule that out would be to relay your mail through your ISP's SMTP server. If you do, mail will still be sent and received by your server, it will just use your ISP as the first hop so that other MTAs will accept it.
As far as the telnet goes, how far did you get with telnet into sending yourself something via yahoo?
For the commands, the list should go like this:
1: EHLO your.domain
2: MAIL FROM: firstname.lastname@example.org
3: RCPT TO: email@example.com
5: SUBJECT: put the subject here
6: Now, press enter 2 times. You won't see a response.
7: Now, type the subject
8: Put the period (.) on the blank line.
Each valid step should give you a 220 code. These should be the steps that your server goes through when connecting to Yahoo and hopefully you will see the same error code so that we can tell what step is the problem.
Anyway, hang in there and keep at it. It has been both my experience and observation that getting mail servers up and running takes a lot of trial and error.
Note, I just tested the above procedure on my own server and it worked with the exception of the subject appearing.