Мне приходится сталкиваться с проблемой отправки почты на мой почтовый ящик (учетная запись gmail), но каждый раз она попадает в папку спама. Вот фрагмент кода
//$ticketDetail is array which contain required information to send. sendOwnershipEmail('dineshnagarscriet@gmail.com', $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: successive.testing@gmail.com' . "\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 и т. Д., Но каждый раз, когда идет спам. Может у, пожалуйста, выясните, в чем проблема?
Проблема проста в том, что функция PHP-Mail не использует хорошо настроенный SMTP-сервер.
В настоящее время почтовые клиенты и серверы выполняют массивные проверки на сервере отправки электронной почты, например, обратном DNS-поиске, Graylisting и whatevs. Все эти тесты потерпят неудачу с помощью функции php mail (). Если вы используете динамический ip, это еще хуже.
Используйте PHPMailer-Class и настройте его для использования smtp-auth вместе с хорошо настроенным выделенным SMTP-сервером (либо локальным, либо удаленным), и ваши проблемы исчезли.
$headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; $headers .= "From: successive.testing@gmail.com" . "\r\n" . "Reply-To: successive.testing@gmail.com" . "\r\n" . "X-Mailer: PHP/" . phpversion();
По нескольким причинам.
Одна из них – необходимость Reply-To
и,
Использование апострофов вместо двойных кавычек. Эти две вещи в моем опыте с формами, как правило, запускают сообщение, которое заканчивается в окне Спама.
Вы также можете попробовать изменить $from
на:
$from = "successive.testing@gmail.com";
См. Эти ссылки, которые я нашел по теме https://stackoverflow.com/a/9988544/1415724 и https://stackoverflow.com/a/16717647/1415724 и https://stackoverflow.com/a/9899837/1415724
https://stackoverflow.com/a/5944155/1415724 и https://stackoverflow.com/a/6532320/1415724
Попробуйте использовать SMTP-сервер вашего интернет-провайдера.
Использование этого, по-видимому, сработало для многих: X-MSMail-Priority: High
http://www.webhostingtalk.com/showthread.php?t=931932
«Мой хост помог мне включить учетные записи DomainKeys и SPF в моем домене, и теперь, когда я отправляю тестовое сообщение на мой адрес Hotmail, он не попадает в нежелательный файл. На самом деле было действительно легко включить эти параметры в cPanel под аутентификацией по электронной почте. Я не могу поверить, что раньше этого не видел. Он работает только с отправкой через SMTP с использованием phpmailer. Любой другой способ по-прежнему помечен как спам ».
PHPmailer отправляет почту спама в hotmail. как исправить http://pastebin.com/QdQUrfax
Если вы отправляете это через свой собственный почтовый сервер, вам может понадобиться добавить заголовок «Отправитель», который будет содержать адрес электронной почты из вашего собственного домена. Gmail, вероятно, будет рассылать спам по электронной почте, потому что адрес FROM является адресом gmail, но не был отправлен с их собственного сервера.
Что мы обычно делаем с электронной почтой, предотвращая спам-папки в качестве конечного адресата, использует либо Gmail, либо SMTP-сервер, либо Mandrill, как SMTP-сервер.
Использовать это:
<?php // To Email: $To = "Email@email.com"; // Theme: $Theme = "Email Spam"; // Text to your enemy! : $Text = "Your text"; // From: $From = "FROM: simple@emailspam.com"; // 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, запустите его (на веб-сайте) и выполните. Если вы обновите страницу, она снова отправляется. Вы можете проверить себя!
Извините за мой плохой английский, если это плохо …