- Возвращаемые значения
- Список изменений
- Примеры
- Примечания
- Смотрите также
- Php Mail Errors To Header
- PHP mail function, remove the neccessity for errors-to header
- PHP: mail — Manual
- PHP: header — Manual
- How to test and fix the php mail() function
- How to Solve PHP header() Function Problem — CodeProject
- How to Send Email using PHP mail() Function
- Error with PHP mail(): Multiple or malformed newlines .
- PHP mail() Function — W3Schools
- PHP: mb_send_mail — Manual
- PHP: Mail Functions — Manual
- Php Mail Errors To Header Fixes & Solutions
- SIMILAR Errors:
Каждая строка должна быть отделена символом CRLF (\r\n). Строки не должны быть длиннее 70 символов.
(Только для Windows) Если PHP передаёт данные напрямую SMTP-серверу и в начале строки стоит точка, то она будет удалена. Чтобы избежать этого замените все такие точки на две.
Строка, которая будет дополнительно вставлена в конец отправляемых заголовков письма.
Обычно используется для добавления дополнительных заголовков (From, Cc, and Bcc). Несколько дополнительных заголовков должны быть разделены CRLF (\r\n). Если для составления этого заголовка используются внешние данные, то они должны быть проверены для избежания инъекций нежелательных заголовков.
Замечание:
При отправке письмо должно содержать заголовок From. Он может быть установлен с помощью параметра additional_headers , или значение по умолчанию может быть установлено в php.ini .
Если заголовок отсутствует, будет сгенерировано сообщение об ошибке вида Warning: mail(): «sendmail_from» not set in php.ini or custom «From:» header missing. Заголовок From также определяет заголовок Return-Path в Windows.
Замечание:
Если сообщения не отправляются, попробуйте использовать только LF (\n). Некоторые агенты пересылки сообщений Unix (особенно » qmail) автоматически заменяют LF на CRLF (что приводит к двойному CR, если использовалось CRLF). Используйте эту меру в крайнем случае, так как это нарушает » RFC 2822.
Параметр additional_parameters может быть использован для передачи дополнительных флагов в виде аргументов командной строки для программы сконфигурированной для отправки писем, указанной директивой sendmail_path. Например, можно установить отправителя письма при использовании sendmail с помощью опции -f.
Параметр автоматически экранируется функцией escapeshellcmd() , чтобы не допустить выполнение команд. Но escapeshellcmd() позволяет добавлять дополнительные параметры. В целях безопасности рекомендуется проверять и очищать этот параметр.
Так как escapeshellcmd() применяется автоматически, то нельзя использовать некоторые символы, допустимые к использованию в email-адресах некоторыми RFC. mail() не допускает такие символы, поэтому в программах, в которых они требуются, рекомендуется использовать альтернативы для их отправки (например фреймворки или библиотеки).
Пользователь, под которым работает веб-сервер должен быть добавлен в список доверенных в конфигурации sendmail для того чтобы избежать добавления заголовка ‘X-Warning’ при указании отправителя с помощью опции (-f). Для пользователей sendmail — это файл /etc/mail/trusted-users .
Возвращаемые значения
Возвращает TRUE , если письмо было принято для передачи, иначе FALSE .
Важно заметить, что то что письмо было принято для передачи вовсе НЕ означает что оно достигло получателя.
Список изменений
Версия | Описание |
---|---|
4.2.3 | Параметр additional_parameters отключен в режиме safe_mode и при его использовании функция mail() вызовет предупреждение и вернет FALSE . |
Примеры
Пример #1 Отправка письма.
Использование функции mail() для отправки простого письма:
// Сообщение
$message = «Line 1\r\nLine 2\r\nLine 3» ;
?php
// На случай если какая-то строка письма длиннее 70 символов мы используем wordwrap()
$message = wordwrap ( $message , 70 , «\r\n» );
// Отправляем
mail ( ‘caffeinated@example.com’ , ‘My Subject’ , $message );
?>
Пример #2 Отправка письма с дополнительными заголовками.
Добавление простых заголовков, сообщающих почтовому агенту адреса From и Reply-To:
$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 ();
?php
mail ( $to , $subject , $message , $headers );
?>
Пример #3 Отправка письма с дополнительными аргументами командной строки.
Параметр additional_parameters может быть использован для передачи дополнительных параметров программе, используемой для отправки писем с помощью директивы sendmail_path.
Пример #4 Отправка HTML-сообщения
С помощью функции mail() также можно отправить и HTML-письмо.
// несколько получателей
$to = ‘aidan@example.com’ . ‘, ‘ ; // обратите внимание на запятую
$to .= ‘wez@example.com’ ;
?php
// тема письма
$subject = ‘Birthday Reminders for August’ ;
// текст письма
$message = ‘
Here are the birthdays upcoming in August!
Person | Day | Month | Year |
---|---|---|---|
Joe | 3rd | August | 1970 |
Sally | 17th | August | 1973 |
‘ ;
// Для отправки HTML-письма должен быть установлен заголовок Content-type
$headers = ‘MIME-Version: 1.0’ . «\r\n» ;
$headers .= ‘Content-type: text/html; charset=iso-8859-1’ . «\r\n» ;
// Дополнительные заголовки
$headers .= ‘To: Mary , Kelly ‘ . «\r\n» ;
$headers .= ‘From: Birthday Reminder ‘ . «\r\n» ;
$headers .= ‘Cc: birthdayarchive@example.com’ . «\r\n» ;
$headers .= ‘Bcc: birthdaycheck@example.com’ . «\r\n» ;
// Отправляем
mail ( $to , $subject , $message , $headers );
?>
Замечание:
Для отправки HTML или других комплексных сообщений рекомендуется использовать PEAR-пакет » PEAR::Mail_Mime.
Примечания
Замечание:
Реализация функции mail() в Windows во многом отличается от реализации в Unix. Во-первых, она не использует локальную программу для составления писем, а работает непосредственно с сокетами, что означает что необходим почтовый агент (MTA), ожидающий соединений на сокете (может быть как на локальном так и на удаленном сервере).
Во-вторых, дополнительные заголовки вроде: From:, Cc:, Bcc: и Date: интерпретируются в первую очередь не, MTA, а PHP.
Поэтому параметр to не должен быть адресом вида «Something «. Команда mail может неправильно интерпретировать этот адрес во время передачи данных MTA.
Замечание:
Не следует использовать функцию mail() для отправки большого количества писем в цикле. Функция открывает и закрывает соединение с SMTP-сервером для каждого письма, что не очень эффективно.
Для отправки большого количества сообщений обратите внимание на пакеты » PEAR::Mail и » PEAR::Mail_Queue.
Смотрите также
Php Mail Errors To Header
We have collected for you the most relevant information on Php Mail Errors To Header, as well as possible solutions to this problem. Take a look at the links provided and find the solution that works. Other people have encountered Php Mail Errors To Header before you, so use the ready-made solutions.
PHP mail function, remove the neccessity for errors-to header
- https://stackoverflow.com/questions/7260564/php-mail-function-remove-the-neccessity-for-errors-to-header
- I’m on a server that requires the errrors-to header to be set when using PHP mail() function. Popular applications such as WordPress don’t specify this header (at least not everywhere) — so the ema.
PHP: mail — Manual
- https://www.php.net/manual/en/function.mail.php
- In both cases, PHP’s mail() function returned no error, but until I placed both emails, comma-separated, in the same line I was getting the following error: 550 Messages should have one or no Cc headers, not 2.
PHP: header — Manual
- https://www.php.net/manual/en/function.header.php
- Parameters. header. The header string. There are two special-case header calls. The first is a header that starts with the string «HTTP/» (case is not significant), which will be used to figure out the HTTP status code to send.For example, if you have configured Apache to use a PHP script to handle requests for missing files (using the ErrorDocument directive), you may want to make sure that .
How to test and fix the php mail() function
- https://www.arclab.com/en/kb/php/how-to-test-and-fix-php-mail-function.html
- Upload the modified php file and retry. Contact your provider if it still does not work. Tell your provider that the standard php «mail()» function returns TRUE, but not mail will be sent. It’s recommended to include the used php test script to show your provider, that the problem is not caused by the php …
How to Solve PHP header() Function Problem — CodeProject
- https://www.codeproject.com/tips/1124690/how-to-solve-php-header-function-problem
- Sep 06, 2016 · Introduction. In this tutorial, we will learn how to solve the PHP header function problem. As a PHP dev, you have faced this problem many times when your header() function does not redirect to the specified URL. See the code snippet in the code section of this tutorial to find the solution.
How to Send Email using PHP mail() Function
- https://www.guru99.com/php-mail.html
- Dec 12, 2020 · PHP mailer uses Simple Mail Transmission Protocol (SMTP) to send mail. On a hosted server, the SMTP settings would have already been set. The SMTP mail settings can be configured from “php.ini” file in the PHP installation folder.
Error with PHP mail(): Multiple or malformed newlines .
- https://exceptionshub.com/error-with-php-mail-multiple-or-malformed-newlines-found-in-additional_header.html
- Nov 27, 2017 · Had just the similar problem. It came out of the blue. No PHP Code was changed. What was changed: PHP was upgraded 5.5.25-1 to 5.5.26. A security risk in PHP mail() function has been fixed and extra newlines in additional_headers are allowed no more. Because extra newlines mean: now starts the email message (and we surely don’t want somebody to inject some newlines through headers …
PHP mail() Function — W3Schools
- https://www.w3schools.com/php/func_mail_mail.asp
- Return Value: Returns the hash value of the address parameter, or FALSE on failure.Note: Keep in mind that even if the email was accepted for delivery, it does NOT mean the email is actually sent and received! PHP Version: 4+ PHP Changelog: PHP 7.2: The headers parameter also accepts an array PHP 5.4: Added header injection protection for the headers parameter.
PHP: mb_send_mail — Manual
- https://www.php.net/manual/en/function.mb-send-mail.php
- If your server doesn’t have mb_send_mail() enabled but you want to use non-ascii (multi-byte) chars in an email’s subject or name headers, you can use something like the following:
PHP: Mail Functions — Manual
- https://www.php.net/manual/en/ref.mail.php
- If you have a test server in use running Windows and some kind of WAMP combo (XXAMP, WAMP Server, etc) then you’ll notice that the PHP sendmail command (mail ()) does not work. Windows simply does not provide the sendmail statement. There is a simple trick to get this to work though;
Php Mail Errors To Header Fixes & Solutions
We are confident that the above descriptions of Php Mail Errors To Header and how to fix it will be useful to you. If you have another solution to Php Mail Errors To Header or some notes on the existing ways to solve it, then please drop us an email.
SIMILAR Errors:
- Printhead Error 932
- Photoshop Cs5 Not Enough Memory Error
- Printer Spooler Error 1068
- Page_Fault_In_Nonpaged_Area Error While Installing Windows 8
- Phpmyadmin Error #1064
- Paul Brian Common Errors
- Pointing Error Telescope
- Partition Magic Error 1527
- Php Parse Error Syntax Error Unexpected T Variable Drupal
- Python Memory Error
- Pelton Crane Autoclave Error Codes
- Php Error Log Path Linux
- Phpbb Installation Errors
- Pwi Download Error
- Python Simplejson Error
- Paypal Error 11452
- Pxe Boot Udp Checksum Error
- Periodic Error Correction
- Parity Check Error Correction
- Protection Error 48 Virtual Dj