Recommended SMTP Relay Service [closed]
As many others are saying, such a server would essentially already be on every blacklist known to man, as it would be used by any spammer worth his salt, so it would be pointless for you to use it - half the mails you sent would never arrive.
If this is an application you're planning to deploy in a lot of (ie, >3) places, it may make sense for you to put up a central mail server to handle all the relaying. Configure the central server to allow relaying from authenticated users, and require SMTP TLS before authentication is done. Configure the app on each individual server to relay off localhost, and sendmail on each individual server to relay off this central server, authenticating with a username and password specific to the individual server (to allow one machine to be de-authorised without affecting all the others).
Or for that matter, just configure sendmail on each local server to do final delivery itself. I re-read your question after writing most of the above and realised I couldn't see a good reason to have a central server at all, though there may be one.
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.