Ok I have gotten it working with sendmail.
First of all ckmehta your problem isn't the same as mine. You appear to have incomming port 25 blocked. That is not the case for me. I can receive mail. Just can't send it.
For me outgoing only on port 25 is blocked.
I decided to go with Option number 3 and here are the things I did in case someone else wants to try this.
First of all I had to find someone willing to do this (my brother agreed to let me configure his computer to relay mail for me.)
Step 1. Configure friends computer to listen on two ports
This thread helped me out with figureing out how to listen on two ports
in my friends sendmail.cf file I made sure there were two DaemonPortOptions set up to get sendmail listen on two ports (NOTE earlier versions of sendmail do not support having you set up two different Daemons in one sendmail.cf file.)
#this DaemonPortOption listens for any incomming port 25 communication
O DaemonPortOptions=Port=smtp, Name=nameofyourchoice1
#this DaemonPortOption listens for any incommong port XXXX (you fill in the xxxx's)
O DaemonPortOptions=Port=XXXX, Name=nameofyourchoice2
Nameofyourchoice1 is defaulted to MTA (for mail transfer agent) It can affect how mail gets sent out if you configure different options with it but with those two lines I set up it wouldn't matter what either are called.
Next in my friends access file I had to add an option get his sendmail to allow relaying from me
then you convert the access file into the access.db and restart sendmail (/etc/init.d/sendmail restart)
Now my friend's computer will relay from my own.
This is what I had to do on my computer.
First I had to set my computer's smart host to be his computer.
To find this look for a comment that says something like ""Smart" relay host (may be null)"
There is a "DS" that has nothing after it. (D means macro definition S is for the Smart Host macro definition)
I changed the DS line to this
Last thing I had to do is to configure my sendmail to send mail on the same port that I had my friend listen on (port XXXX)
I am not quite sure if I changed more than I had to but this is what I did and it worked for me.
everywhere I found a A=TCP $h
I changed it to: A=TCP$h XXXX
Well hope this helps.