Отправка писем в проекте написанном на php


Отправка писем в проекте написанном на php не такая уж сложная задача.

Вроде бы можно пользоваться функцией mail и не мучатся, но как правило мы сталкиваемся с проблемами попадания отправленных сообщений в СПАМ.


Многие небольшие компании используют для работы корпоративной почты бесплатные сервисы «Яндекс.Почта для домена» и «Mail.ru для бизнеса» которые позволяют прикрепить свой домен и завести 1000 почтовых адресов совершенно бесплатно. Вроде бы все хорошо и защита от СПАМа более менее и тратится дополнительно не надо да и интерфейс привычный, но вот сообщения отправленный с сайта при помощи простенького кода частенько ложатся в спам.


Пример простой отправки сообщения:

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

Я для борьбы с данной проблемой попадания сообщений в спам использую класс PHPMailer для отправки сообщений непосредственно через smtp сервер (бесплатного хостинга почты) с авторизацией. Так как в основном использую «yandex.ru почта для домена» то просто создаю почтовый ящик no-reply@наш-домен.рф или webmaster@наш-домен.рф что бы отправка сообщений шла через него.


Качаем PHPMailer ( или PHPMailer)


Пример использования PHPMailer для отправки сообщения через smtp.yandex.ru:

require_once("$_SERVER[DOCUMENT_ROOT]/PHPMailer/class.phpmailer.php");
require_once("$_SERVER[DOCUMENT_ROOT]/PHPMailer/class.smtp.php");
			
$mail = new PHPMailer(); 
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.yandex.ru";
$mail->Port = 465;
$mail->Username = "webmaster@example.com";
$mail->Password = "**наш пароль**";
$mail->CharSet = "utf-8";
$mail->SetFrom('webmaster@example.com');
$mail->Subject = 'the subject';
$mail->Body = "hello";
$mail->AddAddress('ivanov@test.com');
$mail->Send();

P.S. Рекомендации что бы наши письма не попадали в спам:

  • Отправитель письма должен быть из того домена что сайт
  • Настройка SPF и DKIM для нашего домена
  • Не используйте в теме письма слова и словосочетания связанные с деньгами: «Купи», «Заработай», «Деньги», «Скидка», «Распродажа», «Бесплатно».
  • В теме письма не пишите отдельные слова или всю тему «ЗАГЛАВНЫМИ» буквами
#php

Copyright © 2013-2017