We have a business web application that periodically sends emails as reminders, links to client data, etc. Our company uses Google Apps for our email provider (with our own domain name), and the web application sends email through Google with SMTP.
The problem is that Google Apps / Gmail keeps marking the messages as spam, even for the inboxes in our domain name. No other email provider seems to mark it as spam (but of course we haven't tested them all...).
We've tried various formulations of the body test: i.e. including more contextual information, addressing the recipient by name, but so far with no apparent changes. This makes me thing it may be something about our email sending process, rather than the content of the email, that's causing the emails to be marked as spam.
Things that we tried but that didn't solve the problem:
- "From" address is valid and not spoofed
- SPF records are correct, and show as "pass" in the email header
- Since we are connecting to Google's SMTP server to send email, it's not an issue with a blacklisted IP address (however, our website has a static IP address that is not blacklisted).
- Email is not very spammy: I've checked against several online spam filter tests, and the email body always shows up as extremely unlikely to be filtered.
- HTML body vs plain-text body seems to make no difference.
- We send a small volume of email: probably 0-10 emails per day, so I don't see how that would make this suspicious.
- Whenever we have access to the receiving inbox (i.e. it belongs to an employee of our company), we've been marking the emails as "not spam", since Gmail may be using communal statistics to determine spam. After a couple times this results in emails to that particular inbox getting through, but doesn't seem to help other accounts.
What else can we try?
If it makes a difference, we're sending emails using an ASP.NET site running .NET 3.5. A typical email gets sent like this:
var message = new MailMessage(new MailAddress(from), new MailAddress(to)) {
Subject = subject,
Body = body
IsBodyHtml = true
};
// SMTP details stored in web.config
new SmtpClient { EnableSsl = true }.SendAsync(message, null);
EDIT: I've seen this similar question: How to stop Gmail from marking mails sent by my web app as spam?, but the situation is a little different since we can reproduce it by sending and receiving from the same Google Apps domain. Besides, I believe I have covered all of the proposed solutions for that question.