Nikkorfed
@Nikkorfed
Full-Stack JavaScript Developer

Каким способом отправлять почту из PHP?

Доброго времени суток! Реализую сейчас на сайте простейшую HTML форму, которая собирает данные и отправляет их письмом на определенный адрес. Написал код следующего вида:

$to = 'ivan.ivanovich@example.ru';
$subject = 'Тема письма';
$from = ' info@example.ru>';

$headers = "From: $from\r\n";
$headers .= "Reply-To: $from\r\n";
$headers .= "Return-Path: $from\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "X-Mailer: PHP" . phpversion() . "\r\n";

$message =
  "<html>
    <body>Текст письма</body>
  </html>";

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

Письмо отправлялось и доходило. Все было нормально кроме того, что оно постоянно попадало в папку "спам". Чтобы исправить это, создал почтовый домен у хостера, ящик вида info@example.ru и активировал все функции, которые уменьшали вероятность попадания в спам (SpamAssassin, DKIM, DMARC и SSL). После этого проверил письмо в mail-tester, который выдал 1.6 балла и показал, что заголовок Return-Path содержит адрес, который вообще никак не относится к этой форме. Как выяснилось позже, он брался из файла php.ini. Поменял в нём параметр sendmail_path на /usr/sbin/sendmail -t -i -f info@example.ru и всё заработало как надо. Письма теперь не летят в спам, отлично.

Но отсюда сразу же возникло пару вопросов:
1. Как быть, если на этом же сервере расположен другой сайт с другим доменом и с него нужно тоже отправить письмо?
2. Прочитал, что есть специальная библиотека PHPMailer, которая может отправлять письма через сторонние SMTP серверы. Что это вообще такое и стоит ли её использовать для этого?
3. И какой вообще способ из этих двух лучше использовать для простой отправки писем с сайта? Внешние SMTP серверы чем-то принципиально лучше или хуже, чем стандартная функция mail()?
  • Вопрос задан
  • 608 просмотров
Решения вопроса 1
@ynblpb_spb
дятел php
Долго воевал с mail() и в итоге перешел на PHPMailer+SMTP. Работает стабильнее.. можно пользоваться SMTP яндекса, если для домена, с которого идёт отправка использован яндексовский сервис почта для домена.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 12:20
15000 руб./за проект
25 апр. 2024, в 12:08
300 руб./за проект
25 апр. 2024, в 11:49
25000 руб./за проект