There are many issues you'll run into when having people sending email out over SMTP ports like port 25, from their network. A couple:
- Many IT admins block outgoing traffic from port 25 from all computers on the network other than the email servers (to mitigate issues with virus-infected computers on the network spewing spam).
- Lots of antivirus and "endpoint security" software will block unknown programs from sending out traffic on port 25 (Ian Ringrose mentions above). So you may be dealing with supporting 20 different antivirus programs and telling people how to add exceptions (if their IT admins even allow them to).
I think it's going to be a constant battle for you. But if it's not an app you made, then it doesn't sound like you can modify the functionality.
If you can only specify to/from addresses and a server name, then I think you may be out of luck using a third party external SMTP relay. An SMTP relay that allows anyone to connect without authenticating is going to be used by spammers immediately and be on every blacklist. If you can specify SMTP server authentication details, then a service like SendGrid would likely work for you. If you can't use SMTP authentication, then you'll probably need to setup your own SMTP server to accept email from the clients (maybe lock it down somewhat with IP allow/deny lists?).
The downside to the latter is that you then become a service provider and you open a whole can of worms regarding email server uptime, scaling, making sure your email server isn't blacklisted, are you going to provide this service forever, are you going to charge for it, etc.
EDIT: One other option would be to run some small SMTP server in the background on the local machine that does allow for SMTP authentication. Have the app use localhost as the SMTP server, then have the localhost SMTP server set to forward all mail to a service like SendGrid. It's an additional layer of something to go wrong, but it sounds like you're short on options.