hosting:php:mail

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
hosting:php:mail [2019/12/22 17:11]
zinenko [2.8.20. Функция Mail]
hosting:php:mail [2019/12/23 10:00] (текущий)
karlov
Строка 1: Строка 1:
-====== 2.8.20. Функция ​Mail ====== +====== 2.8.20. Функция ​PHP mail ======
-<note important>​Данная функция при неверных настройках и использовании может некорректно доставлять письма на целевой почтовый ящик попадая в спам или отклоняясь почтовым сервером получателя. Рекомендуется использовать [[hosting:​mail:​proper-sending-from-site#​php_mail|корректные настройки]] или отправку писем при помощи [[hosting:​mail:​proper-sending-from-site#​smtp|SMTP]].</​note>​+
  
-PHP функция ''​[[https://​www.php.net/​manual/​ru/​function.mail.php|Mail()]]''​ позволяет осуществлять отправку писем без потребности SMTP авторизации в почтовом ящике. ​Данная функция полезна для быстрой ​настройки отправки писем, но при этом без определенных настроек может отправлять письма, которые с высокими шансами будут помещены ​в спам или отклонены. Причина тому ​-- отсутствие ​корректного или указание неправильного заголовка ''​FROM''​ при отправке, а также невозможность использования ​[[hosting:​mail:​spf-dkim-dmarc:dkim|DKIM]]. +<note important>​ 
 +Данная функция при неверных настройках и использовании может некорректно доставлять письма ​на целевой почтовый ящик — отправленные письма могут попадать ​в спам или отклоняться почтовым сервером получателя. Рекомендуется использовать [[hosting:​mail:​proper-sending-from-site#​php_mail|корректные настройки]] ​или отправлять письма ​по [[hosting:​mail:​proper-sending-from-site#​smtp|SMTP]]. 
 +</​note>​
  
-Указывая заголовок ''​FROM''​ важно учитывать какой именно почтовый ящик будет использоваться. Рекомендуется или не указывать его в самой функции, ​при этом ​указав корректный почтовый ящик в [[hosting:​mail:​issues:​could-not-instantiate-mail-function|настройках сайта]], или не указывая его в [[hosting:​mail:​issues:​could-not-instantiate-mail-function|настройках сайта]], ​но указав в функции дополнительным заголовком. К примеру при отправке писем с указанием заголовка,​ в котором будет использоваться домен ''​mail.ru'' ​-- письмо будет отклонено по причине наличия SPF записи у ''​mail.ru'',​ по этому стоит указывать только ​Ваш домен или же существующий почтовый ящик. ​+Функция PHP ''​[[https://​www.php.net/​manual/​ru/​function.mail.php|mail()]]''​ позволяет осуществлять отправку писем без SMTP-авторизации в почтовом ящике. Она полезна для быстрой настройки отправки писем, но при этом без определённых настроек может отправлять письма,​ которые с высокими шансами будут помещены в спам или отклонены. Причина тому — отсутствие корректного или указание неправильного заголовка ''​FROM''​ при отправке,​ а также невозможность использования [[hosting:​mail:​spf-dkim-dmarc:​dkim|DKIM]].  
 + 
 +Указывая заголовок ''​FROM''​важно учитыватькакой именно почтовый ящик будет использоваться. Рекомендуется
 +  * Либо не указывать его в самой функции, ​а устанавливать ​корректный почтовый ящик в [[hosting:​mail:​issues:​could-not-instantiate-mail-function|настройках сайта]]
 +  * Либо не устанавливать его в [[hosting:​mail:​issues:​could-not-instantiate-mail-function|настройках сайта]], ​а указывать ​в функции дополнительным заголовком. ​ 
 + 
 +К примерупри отправке писем с указанием заголовка,​ в котором будет использоваться домен ''​mail.ru''​письмо будет отклонено по причине наличия SPF-записи у домена ​''​mail.ru'',​ поэтому ​в качестве отправителя следует указывать только ​ваш домен или же существующий почтовый ящик.
  
 ===== Описание функции ===== ===== Описание функции =====
  
-Функция ''​mail()''​ имеет определенные параметры для указания данных получателя,​ отправителя,​ письма и прочего. Пример использования функции:​ <code php>​mail("​получатель",​ "​тема письма",​ "​тело письма",​ "​дополнительные заголовки",​ "​дополнительные параметры"​);</​code>​+Функция ''​mail()''​ имеет определённые параметры для указания данных получателя,​ отправителя,​ письма и прочего. Пример использования функции:<​code php>​mail("​получатель",​ "​тема письма",​ "​тело письма",​ "​дополнительные заголовки",​ "​дополнительные параметры"​);</​code>​
 Все указанные параметры функции нужно указывать в двойных **''​%%"​%%''​** или одинарных **''​%%'​%%''​** кавычках. Пример использования функции предоставлен в [[hosting:​mail:​check-outgoing-php-mail|тестовом скрипте]]. Параметры должны соответствовать:​ Все указанные параметры функции нужно указывать в двойных **''​%%"​%%''​** или одинарных **''​%%'​%%''​** кавычках. Пример использования функции предоставлен в [[hosting:​mail:​check-outgoing-php-mail|тестовом скрипте]]. Параметры должны соответствовать:​
-  ​- <<*олучатель**>> -- параметр должен соответствовать [[http://​www.faqs.org/​rfcs/​rfc2822|стандарту]],​ не может содержать более 60 получателей,​ с учетом указанных в заголовке ''​to'',​ ''​Cc'',​ ''​Bcc'',​ и может быть указан как: +  * ''​получатель''​ — параметр должен соответствовать [[http://​www.faqs.org/​rfcs/​rfc2822|стандарту]],​ не может содержать более 60 получателей,​ с учетом указанных в заголовке ''​to'',​ ''​Cc'',​ ''​Bcc'',​ и может быть указан как: 
-    ​''​%%admin@example.com%%'' ​-- в качестве ​одного ​получателя+    ​''​%%admin@example.com%%'' ​— один получатель
-    ​''​%%admin@example.com,​ user@example.com%%'' ​-- несколько получателей разделенные запятыми. +    ​''​%%admin@example.com,​ user@example.com%%'' ​— несколько получателейразделенных запятыми. 
-    ​''​Имя <%%admin@example.com%%>'' ​-- указание ​имени ​получателя и почтового ящика. Дополнительно можно указать также несколько получателей разделенные запятыми. +    ​''​%%Имя <​admin@example.com>%%'' ​— имя получателя и почтового ящика. Дополнительно можно указать также несколько получателейразделенных запятыми. 
-  ​- <<*ема письма**>> -- тема, которая будет указана в письме,​ должна соответствовать [[http://​www.faqs.org/​rfcs/​rfc2047|стандарту]]. +  * ''​тема письма''​ — тема, которая будет указана в письме,​ должна соответствовать [[http://​www.faqs.org/​rfcs/​rfc2047|стандарту]]. 
-  ​- <<*ело письма**>> -- текст, который будет указан в самом письме. Для указания корректного тела нужно учитывать:​ +  * ''​тело письма''​ — текст, который будет указан в самом письме. Для указания корректного тела нужно учитывать:​ 
-    ​Тело письма должно быть разделено на строки,​ если оно превышает 70 символов. Строка не может быть больше 70 символов. Разделение текста по строкам удобно реализовывать функцией [[https://​www.php.net/​manual/​ru/​function.wordwrap.php|wordwrap]]. К примеру если в переменной ''​$message''​ содержится текст письма,​ то можно использовать так: <code php>​wordwrap($message,​ 70, "​\r\n"​)</​code>​ +    ​Тело письма должно быть разделено на строки,​ если оно превышает 70 символов. Строка не может быть больше 70 символов. Разделение текста по строкам удобно реализовывать функцией ​''​[[https://​www.php.net/​manual/​ru/​function.wordwrap.php|wordwrap]]''​. К примеруесли в переменной ''​$message''​ содержится текст письма,​ то можно ​её использовать так:<​code php>​wordwrap($message,​ 70, "​\r\n"​)</​code>​ 
-    ​Разделение строк должно производится при помощи CRLF (''​\r\n''​). +    ​Разделение строк должно производится при помощи CRLF (''​\r\n''​). 
-  ​- <<*ополнительные заголовки**>> -- <wrap lo>​(необязательный параметр)</​wrap>​ строкас разделенными заголовками при помощи CRLF (''​\r\n''​)или массив строк ​которые указывают ​определенные заголовки. Часто указываемые заголовки:​ +  * ''​дополнительные заголовки'' ​<wrap lo>​(необязательный параметр)</​wrap> ​— строка с разделёнными при помощи CRLF (''​\r\n''​) ​заголовками ​или массив строк ​с определёнными заголовками. Часто указываемые заголовки:​ 
-    ​- <<**From**>> -- заголовок указывающий ​отправителя письма. ​Заголовок будет создавать ошибку при использовании определенного почтового ящика в [[hosting:​mail:​issues:​could-not-instantiate-mail-function|настройках сайта]].  +    * ''​From''​ — заголовок, в котором ​указывается ​отправитель письма. ​Будет создавать ошибку при использовании определённого почтового ящика в [[hosting:​mail:​issues:​could-not-instantiate-mail-function|настройках сайта]].  
-    ​- <<**Reply-To**>> -- адрес, на который будут адресованы ответы на письмо. Рекомендуется использовать данный заголовок вместо ''​From''​. +    * ''​Reply-To''​ — адрес, на который будут адресованы ответы на письмо. Рекомендуется использовать данный заголовок вместо ''​From''​. 
-    ​- <<**Content-Type**>> -- MIME-заголовок,​ сообщающий почтовой программе о типе данных,​ хранящихся в сообщении. В данном заголовке можно ​указать используемую кодировку ​путем указания: <​code>'​Content-type:​ text/html; charset="​utf-8"'</​code>​ +    * ''​Content-Type''​ — MIME-заголовок,​ сообщающий почтовой программе о типе данных,​ хранящихся в сообщении. В данном заголовке можно ​задать используемую кодировку:<​code>'​Content-type:​ text/html; charset="​utf-8"'</​code>​ 
-    ​- <<**Cc Bcc**>> -- отправка копии сообщения. ''​Cc'' ​-- копирует сообщение адресату,​ работая по аналогии заголовка ''​to''​ <wrap lo>​(получатель)</​wrap>,​ но множество почтовых сервисов может использовать ​данный заголовок ​для разделения получателей,​ дабы не отображать им список,​ кому было адресовано письмо. Данный заголовок для каждого получателя подставляет самого получателя в заголовок ''​to'',​ тем самым каждый получатель будет думать,​ что письмо было адресовано конкретно ему. ''​Bcc'' ​-- копирует сообщение адресату и выполняет ту же функцию,​ что и ''​Cc''​ за исключением того, что заголовок ''​to''​ <wrap lo>​(получатель)</​wrap>​ не будет изменен и пользователю,​ которому адресовано письмо,​ не будет отображен его почтовый ящик в списке получателей письма. Данный заголовок опасен в применении и может приводить к проблемам доставки или понимания причин доставки письма указанному в нем получателю. ​ <wrap em>​Важно:</​wrap>​ нельзя указывать более 60 получателей с учетом указанных в заголовке ''​to'',​ ''​Cc'',​ ''​Bcc''​. +    * ''​Cc''​ и ''​Bcc''​ — отправка копии сообщения. ''​Cc'' ​— копирует сообщение адресату,​ работая по аналогии заголовка ''​To''​ <wrap lo>​(получатель)</​wrap>,​ но множество почтовых сервисов может использовать ​его для разделения получателей,​ дабы не отображать им список,​ кому было адресовано письмо. Данный заголовок для каждого получателя подставляет самого получателя в заголовок ''​To'',​ тем самым каждый получатель будет думать,​ что письмо было адресовано конкретно ему. ''​Bcc'' ​— копирует сообщение адресату и выполняет ту же функцию,​ что и ''​Cc''​ за исключением того, что заголовок ''​To''​ <wrap lo>​(получатель)</​wrap>​ не будет изменён и пользователю,​ которому адресовано письмо,​ не будет отображен его почтовый ящик в списке получателей письма. Данный заголовок опасен в применении и может приводить к проблемам доставки или понимания причин доставки письма указанному в нём получателю. <wrap em>​Важно:</​wrap>​ нельзя указывать более 60 получателей с учётом указанных в заголовке ''​To'',​ ''​Cc'',​ ''​Bcc''​. 
-  ​- <<*ополнительные параметры**>> -- <wrap lo>​(необязательный параметр)</​wrap> ​указание ​параметров и ключей для использования ''​sendmail''​. Часто используемые ключи:  +  * ''​дополнительные параметры'' ​<wrap lo>​(необязательный параметр)</​wrap> ​— параметры и ключи для использования ''​sendmail''​. Часто используемые ключи:  
-    ​- <<**-Fuser**>> -- параметр указывающий полное имя отправителя. Указание ключа и имени ​не разделяется пробелом. +    * ''​-Fuser''​ — ключ с именем отправителя ​(не разделяются пробелом)
-    ​- <<**-fuser@example.com**>> -- параметр указывающий ​почтовый ящик отправителя. Указание ключа и ящика ​не разделяется пробелом. Параметр будет создавать ошибку при использовании определенного почтового ящика в [[hosting:​mail:​issues:​could-not-instantiate-mail-function|настройках сайта]]. ​+    * ''​-fuser@example.com''​ — ключ с почтовым ящиком отправителя ​(не разделяются пробелом). Параметр будет создавать ошибку при использовании определённого почтового ящика в [[hosting:​mail:​issues:​could-not-instantiate-mail-function|настройках сайта]].
  
 ===== Другие статьи ===== ===== Другие статьи =====
  
 {{indexmenu>​.#​1|nsort tsort}} {{indexmenu>​.#​1|nsort tsort}}
- 
  • hosting/php/mail.txt
  • Последние изменения: 2019/12/23 10:00
  • — karlov