Я не знаком с Amazon SES, но у меня будет попытка сделать это.
Существует интересное обсуждение, посвященное электронной почте, отправляемой через Amazon SES, и пометке здесь как спам - Форум AWS: "Электронная почта, помеченная как спам CLOUDMARK"
Наряду с поднятыми там вопросами, пара предложений:
- Всегда включайте текстовую версию содержимого, некоторые фильтры нежелательной почты могут интерпретировать электронные письма только в формате HTML как более вероятные нежелательные сообщения (которыми они часто являются), а некоторые пользователи могут иметь только текстовые почтовые клиенты (некоторые мобильные пользователи, и др.)
- Проверьте правильность написания. Неправильное написание, как правило, является пустой раздачей спам-писем и может привести к тому, что люди будут вручную помечать письма как спам, не обращая внимания.
- (Если возможно.) Добавьте имя «От». Опять же, если письмо приходит с обычного адреса электронной почты, а не с понятного человеку, который подходит для вашего сообщения, он с большей вероятностью будет выглядеть как спам (либо для фильтра, либо для пользователя).
Вот предлагаемый исправленный код (исправленное написание и HTML-разметка):
<?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);