Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've got a legacy application that needs an smtp server to relay emails. Each client has various control over their IT infrastructures (from little to none at all), so I can't necessarily install an smtp server on each of their machines.

Can anyone recommend a basic SMTP Relay Service?

Its literally only for sending a couple of emails a day to a list of about 20 users per client. The application only allows for the smtp server and to/from addresses to be specified. I'm assuming its using the default port.


share|improve this question

closed as off topic by splattne Sep 13 '12 at 20:31

Questions on Server Fault are expected to relate to server, networking, or related infrastructure administration within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

A lot of virus scanning will not allow unknow software to connect to the default SMTP port. So some (most) of your clients will have to unblock your app in their virus checker. – Ian Ringrose Jul 11 '11 at 14:55
up vote 1 down vote accepted

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.

share|improve this answer
Thanks MadHatter. I went ahead and just used sendmail. Letting the client's IT departments worry about it. – Ryan Jul 14 '11 at 12:43

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.

share|improve this answer

Install post cast server at your site, and relay through messagelabs / postini, or some other service that's trusted.

Then you have all your clients connect to your smtp server and the only thing you have to do is only open it for the IP's of your clients.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.