Есть много вещей, которые могут привести к тому, что письма будут помечены как спам. Решение двоякое: с одной стороны, вы должны использовать хороший SMTP-сервер (доставляемость), а затем вы должны правильно формировать свои электронные письма. (Утомительная задача с использованием mail ().)
Правильная отправка писем с использованием PHP
Вы действительно должны использовать что-то вроде PHPMailer. Это php-библиотека для отправки электронных писем, которая делает их правильно, поэтому у писем больше шансов на правильное поступление.
http://phpmailer.worxware.com/
Доставка по электронной почте
Доставка электронной почты может быть головной болью, но я могу порекомендовать http://www.sendgrid.com - Вы в основном устанавливаете их в качестве сервера smtp phpmailer и используете их сервер исходящей почты. Они являются экспертами в области доставки электронной почты, и вы намного легче время Особенно, когда вы начинаете рассылать орды писем.
Пример кода
Пример электронного письма с сайта phpmailer:
<?php
require_once('../class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = "smtp.sendgrid.net"; // sets the SMTP server to sendgrid's server
$mail->Port = 25; // set the SMTP port for the GMAIL server
$mail->Username = "emailuser@host.com"; // Sendgrid user
$mail->Password = "yourpassword"; // Sendgrid passw.
$mail->SetFrom('name@yourdomain.com', 'First Last');
$mail->AddReplyTo("name@yourdomain.com","First Last");
$mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$address = "whoto@otherdomain.com";
$mail->AddAddress($address, "John Doe");
echo !$mail->Send() ? "Mailer Error: " . $mail->ErrorInfo : "Message sent!";
?>
Я бы хотел сказать, что я никоим образом не связан с Sendgrid. Я просто большой поклонник их обслуживания. Я много лет боролся с функцией mail (), smtp-серверами, почтовыми очередями и службами в веб-магазине разработчика, и я не желаю этой участи для моего злейшего врага. Сэкономьте время и заботы.
Ура ...