Клиент не получает отправленное по электронной почте содержимое формы

У меня есть простое сообщение формы, которое отправляется клиенту по электронной почте при отправке.

Они не получают форму в их электронной почте. Похоже, это не проблема со спамом, так как никто в их домене не получит содержимое, и они проверили свои спам-фильтры.

Если я отправляю содержимое на свои адреса электронной почты на разных почтовых серверах и доменах, я всегда их получаю.

Я звоню в службу поддержки хоста (mediaTemple), и они сразу же подумали, в чем проблема - что почтовые службы были включены для веб-сайта, но почта обрабатывается другой машиной (Google). Включены почтовые сервисы в панели управления mediaTemple Plesk. Клиент по-прежнему не получает письма. Какие-либо предложения?

Я пропустил кучу полей, но просто чтобы вы все могли получить представление о PHP:

$to = "[email protected], [email protected]";
$subject = "Web Site Feedback";

$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$date_of_visit = $_POST['date_of_visit'];
$first_visit = $_POST['first_visit'];

$body = "From: $first_name $last_name\n Date of Visit: $date_of_visit\n First Visit: $first_visit\n";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";
$headers .= 'From: Client Name <[email protected]>'. "\r\n";
$headers .= "Reply-To: " . "<[email protected]>\r\n";
$headers .= "Return-path: [email protected]";

mail($to, $subject, $body, $headers)

person Keefer    schedule 25.07.2011    source источник
comment
Тело HTML без альтернативы обычного текста? Что ж, это приведет к высоким баллам на множестве спам-фильтров.   -  person Quentin    schedule 25.07.2011
comment
Вы имеете в виду из-за Content-type: text/html; кодировка = строка UTF-8? Это все текст. Должен ли я изменить эту строку? Хотя, если честно, добавление заголовков было добавлено совсем недавно. Он не отображался даже до того, как был определен тип контента.   -  person Keefer    schedule 25.07.2011
comment
Если вы хотите отправить электронное письмо в формате HTML, отправьте составное электронное письмо MIME с альтернативным текстом … и если вы это сделаете, получите подходящую библиотеку для этого, а не пытаетесь вручную создать подпрограмму MIME.   -  person Quentin    schedule 25.07.2011
comment
Это просто текст формы. Предположим, что он изменен на Content-type: text/plain; кодировка = UTF-8 сейчас.   -  person Keefer    schedule 25.07.2011


Ответы (1)


Проверьте, не работает ли функция почты...

if (!mail($to, $subject, $body, $headers)) {
   echo "Failed to send email...";
}

Если он работает с отправкой на другой адрес электронной почты, который не принадлежит им, то это определенно проблема со спамом.

Вы можете попробовать настроить запись SPF на почтовом сервере, чтобы убедиться, что это не спам, а также рассмотреть возможность использования DKIM (PHPMailer). иметь хорошую поддержку DKIM).

person fire    schedule 25.07.2011
comment
это определенно работает для любого электронного письма, которое не является веб-сайтом, размещенным на этом ящике. У них есть около четырех веб-сайтов, размещенных на этом ящике mt, и ни одно из этих электронных писем никогда не получает содержимое формы. Любые другие электронные письма, которые я добавляю, получают их. - person Keefer; 25.07.2011
comment
Как я уже сказал, это определенно проблема со спамом. Вам нужно изучить методы, чтобы электронная почта выглядела более подлинной, т. Е. Использование записи SPF, чтобы сообщить серверу-получателю, что сервер-отправитель имеет право отправлять почту с этого IP-адреса. - person fire; 25.07.2011