tags:

views:

48

answers:

2

We send loads of e-mails to clients/the public, but our current set up is antiquated and old, and to be honest, I really don't know how it works at all...

What's a good way to re-do it? We get loads of complaints from people not receiving e-mails and also loads go into their junk folders...

Our software is asp.net, and I am rewriting the whole legacy system which creates and sends e-mail actually in the code. I would have thought the correct way would be to send the e-mail to some kind of server to send out rather than doing it this way, but sending e-mails out is new to me.

Can anyone point me in the right direction to learn about this stuff? Our team spends a huge amount of time dealing with people who don't get e-mails and if we had a reliable system that we could easily debug, it would make life easier and save money.

All I know about e-mail is that an Exchange server is perhaps involved but we don't actually have an exchange server (yet, should we get one?)... All advice/links to articles to read welcome;)

+1  A: 

At some point, your code will be calling (depending on which version of the framework you're using) something like (.Net 2.0+, using System.Net.Mail):

SmtpClient smtp = new SmtpClient(mailServer);
smtp.Send(emailMessage);

or (.Net 1.1 using System.Web.Mail):

SmtpMail.SmtpServer = mailServer;
SmtpMail.Send(emailMessage);

In either case the string mailServer will be the name/address of the server you are sending the emails out from - this probably isn't an exchange server, it's more likely to be an SMTP server, sitting on your IIS server or host.

On the server side:

  1. Make sure that this server is set up to send the quantity of emails you're sending out - I can't really help too much here - try ServerFault.com I guess ;)
  2. See if you can turn on logging, or at least monitor the BadMail queue - that will give you some indication of whether the problem's at your end or somewhere out there.

There are a number of things that will cause a users mail server or client to consider your emails as Junk, and not accept them, however the most common ones are:

  1. The email comes from a different domain to the "from" address - ideally, you should ensure that your emails are sent from an address with the same domain as your server. If this is not the case, then you'll need to add a Sender Policy Framework header to the server with the address's domain to tell other mail servers that your SMTP server is allowed to send email on your behalf.
  2. The email contains a high number of links in comparison to the non-link text.
  3. The email "looks" like spam - i.e. it matches various model spam emails.
  4. The user hasn't entered their address correctly (you'd be surprised).

Following on from that, make sure that the From address actually exists at your end - that way you can monitor bounce-backs from remote servers and see what reasons they are giving for rejecting your emails.

Depending on the type of emails, and the amount of money you have to spend, you might want to look at using a 3rd Party mailing solution - again sadly, this is outside my area of expertise.

Zhaph - Ben Duguid
Thanks for your reply, loads of good advice. I will poke around with our mail server and see what sort of things I can do.A lot of our mail problems are actually OUR end though, we try sending the e-mails that are failing to ourselves and they fail to materialise. This kind of thing happens a lot... Hence wanting to do a total rewrite.
SLC
+1  A: 

Before you start, it's worth spending some time making sure you understand SMTP.

The MSDN documentation for System.Net.Mail.SmtpClient has some basic working examples of how to send email in .Net.

The hints page at MailChimp and CampaignMonitor have some decent general advice about composing and sending bulk email, whether for marketing purposes or not.

Ed Harper
Thanks for your answer, much appreciated. I will definitely get reading up on SMTP:)
SLC