Подтвердить что ты не робот

Отправка электронной почты с помощью функции php mail распространяется на спам

Я столкнулся с проблемой отправки почты на мой почтовый ящик (учетная запись gmail), но каждый раз она попадает в папку спама. Вот фрагмент кода

     //$ticketDetail is array which contain required information to send.
       sendOwnershipEmail('[email protected]', $ticketDetail);

       function sendOwnershipEmail($email, $ticketDetail) {
            $param = new stdClass();


$param->content = "<div>
    <div><b>".$ticketDetail[0]['ticket_number']."</b></div><br/>
    <div><img src='".$ticketDetail[0]['image_path']."'/></div><br/>
    <div>Ticket with ticket number ".$ticketDetail[0]['ticket_number']." has been requested for tranfer from <div/>
    <div>".$ticketDetail[0]['oldDepartment']." to ".$ticketDetail[0]['newDepartment']." Department <div/>
  </div>";

            $param->sendTo = $email;
            $param->subject = "Request for Department transfer";

        sendMailFunction($param);
    }


    function sendMailFunction($param) {
            $to = $param->sendTo;
            $subject = $param->subject;
            $headers = 'MIME-Version: 1.0' . "\r\n";
            $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
            $headers .= 'From: [email protected]' . "\r\n";
            $message = "<html><head>" .
                   "<meta http-equiv='Content-Language' content='en-us'>" .
                   "<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>" .
                   "</head><body>" .$param->content.        
                   "<br><br></body></html>";
          mail($to, $subject, $message, $headers);
    }

И я пробовал много как настроить заголовки как Reply-To, Return-Path и т.д., но каждый раз, когда он идет на спам. Может у, пожалуйста, выясните, в чем проблема?

4b9b3361

Ответ 1

Проблема проста в том, что функция PHP-Mail не использует хорошо настроенный SMTP-сервер.

В настоящее время почтовые клиенты и серверы выполняют массивные проверки на сервере отправки электронной почты, например обратном DNS-поиске, Graylisting и whatevs. Все эти тесты потерпят неудачу с помощью функции php mail(). Если вы используете динамический ip, это еще хуже.

Используйте PHPMailer-Class и настройте его для использования smtp-auth вместе с хорошо настроенным выделенным SMTP-сервером (либо локальным, либо удаленным), и ваши проблемы исчезли.

https://github.com/PHPMailer/PHPMailer

Ответ 2

Попробуйте изменить заголовки на:

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: [email protected]" . "\r\n" .
"Reply-To: [email protected]" . "\r\n" .
"X-Mailer: PHP/" . phpversion();

По нескольким причинам.

  • Одна из них - необходимость Reply-To и

  • Использование апострофов вместо двойных кавычек. Эти две вещи в моем опыте с формами обычно являются тем, что вызывает сообщение, которое заканчивается в поле Спам.

Вы также можете попробовать изменить $from на:

$from = "[email protected]";


EDIT:

Смотрите эти ссылки, которые я нашел по теме fooobar.com/questions/209908/... и fooobar.com/questions/209909/... и <а2 >

fooobar.com/questions/209911/... и fooobar.com/questions/209913/...

  • Попробуйте использовать SMTP-сервер вашего интернет-провайдера.

    Использование этого, по-видимому, сработало для многих: X-MSMail-Priority: High

http://www.webhostingtalk.com/showthread.php?t=931932

"Мой хост помог мне включить учетные записи DomainKeys и SPF в моем домене, и теперь, когда я отправляю тестовое сообщение на мой адрес Hotmail, он не попадает в Junk. На самом деле было действительно легко включить эти параметры в cPanel под аутентификацией по электронной почте. Я не могу поверить, что раньше этого не видел. Он работает только с отправкой через SMTP, используя phpmailer. Любой другой способ по-прежнему помечен как спам ".

PHPmailer отправляет почту спаму в hotmail. как исправить http://pastebin.com/QdQUrfax

Ответ 3

Если вы отправляете это через свой собственный почтовый сервер, вам может потребоваться добавить заголовок "Отправитель", который будет содержать адрес электронной почты из вашего собственного домена. Gmail, вероятно, будет рассылать спам по электронной почте, потому что адрес FROM является адресом gmail, но не был отправлен с их собственного сервера.

Ответ 4

Что мы обычно делаем с электронной почтой, предотвращая спам-папки в качестве конечного адресата, использует либо Gmail, либо SMTP-сервер, либо Mandrill как smtp-сервер.

Ответ 5

Используйте это:

<?php
// To Email:
$To = "[email protected]";
// Theme:
$Theme = "Email Spam";
// Text to your enemy! :
$Text = "Your text";
// From:
$From = "FROM: [email protected]";
// How many times to send:
$HowMuch = 2;

for($i = 0; $i < $HowMuch; $i++)
{
mail($To, $Theme, $Text, $From);
}

echo "<center><span style='color:green'><h1>Success!</h1></span><br><br><span style='color:green'>To Email:</span> $to <br><span style='color:green'>Theme:</span> $Theme <br><span style='color:green'>Text:</span> $Text <br><span style='color:green'>From Email:</span> $From <br><span style='color:green'>How many times to send:</span> $HowMuch"; 
?>

Я знаю, это очень просто для меня: D Просто поместите этот код в файл php, запустите его (на веб-сайте) и выполните. Если вы обновите страницу, она снова отправляется. Вы можете проверить себя!

Извините за мой плохой английский, если это плохо...

Ответ 6

Одна вещь, которую я наблюдал, скорее всего, адрес электронной почты, который вы предоставляете, не является допустимым адресом электронной почты в домене. например [email protected] Письмо должно быть в домене Google. У меня было много проблем, прежде чем выяснять это... Надеюсь, это поможет.