You will find a "free public SMTP server" hard to find. If such a thing existed, it would quickly be discovered and used by spammers to send unsolicited advertising. Then it would quickly be blacklisted and most other SMTP servers would stop accepting messages from it.
Apache James is a free open-source SMTP written in
Java. You could experiment with that. But make sure that if you are sending messages from your SMTP server and the "from" address is, let's say, "othman@something.org", that your server is set up correctly. It must be set up so that it will be the SMTP server for "something.org", otherwise many other servers will do a reverse DNS check and decide you are sending forged messages. (Nothing stops you from using "billgates@microsoft.com" as your "from" address, but other servers can tell you are not sending it from Microsoft's domain.)
So, besides an SMTP server you are going to need a domain name. I doubt that you can get away with using your IP address, e.g. "From:
othman@40.127.16.84", either.