Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
Панель управления
  • Русский
  • Українська
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  Vodafone
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

2.8.20. Функция PHP mail

Функция mail позволяет осуществлять отправку писем без SMTP-авторизации в почтовом ящике. Она полезна для быстрой настройки отправки писем, но при этом без определённых настроек может отправлять письма, которые с высокими шансами будут помещены в спам или отклонены. Причина тому — отсутствие корректного или указание неправильного заголовка FROM при отправке, а также невозможность использования DKIM.

Указывая заголовок FROM, важно учитывать, какой именно почтовый ящик будет использоваться. Рекомендуется:

  • Либо не указывать его в самой функции, а устанавливать корректный почтовый ящик в настройках сайта.
  • Либо не устанавливать его в настройках сайта, а указывать в функции дополнительным заголовком.

К примеру, при отправке писем с указанием заголовка, в котором будет использоваться домен mail.ru, письмо будет отклонено по причине наличия SPF-записи у домена mail.ru, поэтому в качестве отправителя следует указывать только ваш домен или же существующий почтовый ящик.

Функция mail имеет определённые параметры для указания данных получателя, отправителя, письма и прочего. Пример использования функции:

mail("получатель", "тема письма", "тело письма", "дополнительные заголовки", "дополнительные параметры");

Все указанные параметры функции нужно указывать в двойных " или одинарных ' кавычках. Пример использования функции предоставлен в тестовом скрипте. Параметры должны соответствовать:

  • получатель — параметр должен соответствовать стандарту, не может содержать более 60 получателей, с учетом указанных в заголовке to, Cc, Bcc, и может быть указан как:
    • admin@example.com — один получатель.
    • admin@example.com, user@example.com — несколько получателей, разделенных запятыми.
    • Имя <admin@example.com> — имя получателя и почтового ящика. Дополнительно можно указать также несколько получателей, разделенных запятыми.
  • тема письма — тема, которая будет указана в письме, должна соответствовать стандарту.
  • тело письма — текст, который будет указан в самом письме. Для указания корректного тела нужно учитывать:
    • Тело письма должно быть разделено на строки, если оно превышает 70 символов. Строка не может быть больше 70 символов. Разделение текста по строкам удобно реализовывать функцией wordwrap. К примеру, если в переменной $message содержится текст письма, то можно её использовать так:
      wordwrap($message, 70, "\r\n")
    • Разделение строк должно производится при помощи CRLF (\r\n).
  • дополнительные заголовки (необязательный параметр) — строка с разделёнными при помощи CRLF (\r\n) заголовками или массив строк с определёнными заголовками. Часто указываемые заголовки:
    • From — заголовок, в котором указывается отправитель письма. Будет создавать ошибку при использовании определённого почтового ящика в настройках сайта.
    • Reply-To — адрес, на который будут адресованы ответы на письмо. Рекомендуется использовать данный заголовок вместо From.
    • Content-Type — MIME-заголовок, сообщающий почтовой программе о типе данных, хранящихся в сообщении. В данном заголовке можно задать используемую кодировку:
      'Content-type: text/html; charset="utf-8"'
    • Cc и Bcc — отправка копии сообщения. Cc — копирует сообщение адресату, работая по аналогии заголовка To (получатель), но множество почтовых сервисов может использовать его для разделения получателей, дабы не отображать им список, кому было адресовано письмо. Данный заголовок для каждого получателя подставляет самого получателя в заголовок To, тем самым каждый получатель будет думать, что письмо было адресовано конкретно ему. Bcc — копирует сообщение адресату и выполняет ту же функцию, что и Cc за исключением того, что заголовок To (получатель) не будет изменён и пользователю, которому адресовано письмо, не будет отображен его почтовый ящик в списке получателей письма. Данный заголовок опасен в применении и может приводить к проблемам доставки или понимания причин доставки письма указанному в нём получателю. Важно: нельзя указывать более 60 получателей с учётом указанных в заголовке To, Cc, Bcc.
  • дополнительные параметры (необязательный параметр) — параметры и ключи для использования sendmail. Часто используемые ключи:
    • -Fuser — ключ с именем отправителя (не разделяются пробелом).
    • -fuser@example.com — ключ с почтовым ящиком отправителя (не разделяются пробелом). Параметр будет создавать ошибку при использовании определённого почтового ящика в настройках сайта.