Amazon SES email spam marked
I'm using Amazon SES to send bulk emails to my users. Some emails is marked as spam though. What can I do mitigate the spam marking?
code in PHP:
$ses = new AmazonSES();
$destination = array();
$destination['ToAddresses'] = $email;
$message = array();
$message['Subject.Data'] = "Domains: $contactsName have made a descision";
$message['Body.Text.Data'] = '';
$message['Body.Html.Data'] = " Hi $firstName!
</br>
</br>
$contactsName have made a descision regarding $title at $link
</br>
</br>
Sincerely,
</br>
</br>
The Domain Team";
$message['Body.H开发者_StackOverflowtml.Charset'] = 'utf-8';
$response = $ses->send_email('info@domain.com', $destination, $message);
There are many questions around this which will affect your spam reputation, but some quick ones:
- How many users are you sending to (approximately)?
- Do you always send emails to these users from this IP address?
- Have your users opted-in to receive emails? Do they have an ongoing email relationship with you? Do they normally read emails that you send to them, or just delete them without looking?
- Is your HTML valid? (From the above example, it appears than no - it should be
<br/>
not</br>
.)
These are a few quick questions. The best quick advice I can give you is to make sure the users are opting-in, and encourage them to add you to their friend list. Try to send every email communication between you and them from Amazon SES.
I am not familiar with Amazon SES, but I will have an attempt at this one.
There is an interesting discussion, specifically dealing with email sent through Amazon SES and getting marked as Spam here - AWS Forum: "Email marked as spam CLOUDMARK"
Along with the points raised there, a couple of suggestions:
- Always include a Text version of the content, some spam filters may interpret HTML-only emails as more likely to be spam (which they often are), plus some users may only have text-based email clients (some mobile users, etc.)
- Check your spelling. Incorrect spelling is normally a dead giveaway for spam emails, and may result in people manually marking emails as spam without looking very closely.
- (If possible.) Add a "From" Name. Again, if the email comes from a plain email address, rather than a Human-readable one which is appropriate to your message, it is more likely to look like spam (either to a filter or to a user).
Here is a suggested amended code (corrected spelling and HTML markup):
<?php
$ses = new AmazonSES();
$destination = array();
$destination['ToAddresses'] = $email;
$message = array();
$message['Subject.Data'] = "Domains: $contactsName have made a decision";
$message['Subject.Charset'] = 'UTF-8';
/* NOTE: Lines are broken for readability only */
$body = "Hi $firstName!<br>".
"<br>".
"$contactsName have made a decision regarding $title at $link<br>".
"<br>".
"Sincerely,<br>".
"<br>".
"The Domain Team";
$message['Body.Text.Data'] = str_replace( '<br>' , "\n" , $body );
$message['Body.Html.Data'] = $body;
$message['Body.Html.Charset'] = 'UTF-8';
$response = $ses->send_email('info@domain.com', $destination, $message);
精彩评论