Базовая почтовая функция (PHP) дополнительный параметр -f вопрос

Правильно ли установлен дополнительный параметр -f в этой почтовой функции.

@mail("[email protected]",$title,$body,$headers,"-f");

Я получаю X Warning с некоторых серверов.

Извините за основной вопрос, но некоторые части документации меня запутали (особенно некоторые комментарии пользователей).

Заранее спасибо!


person Trufa    schedule 17.11.2010    source источник


Ответы (5)


Из руководства:

Параметр Additional_parameters можно использовать для передачи дополнительных флагов в качестве параметров командной строки программе, настроенной для использования при отправке почты, как определено параметром конфигурации sendmail_path. Например, это можно использовать для установки адреса отправителя конверта при использовании sendmail с опцией -f sendmail.

Пользователь, от имени которого работает веб-сервер, должен быть добавлен в качестве доверенного пользователя в конфигурацию sendmail, чтобы предотвратить добавление заголовка «X-Warning» к сообщению, когда отправитель конверта (-f) установлен с использованием этого метода. Для пользователей sendmail этот файл называется /etc/mail/trusted-users.

источник: http://www.astahost.com/info.php/Sending-Mail-Php39s-Mail-Function_t2728.html

Параметр Additional_parameters можно использовать для передачи дополнительного параметра в программу, сконфигурированную для использования при отправке почты с использованием параметра конфигурации sendmail_path. Например, это можно использовать для установки адреса отправителя конверта при использовании sendmail с опцией -f sendmail. Возможно, вам потребуется добавить пользователя, которого запускает ваш веб-сервер, в конфигурацию sendmail, чтобы предотвратить добавление заголовка «X-Warning» к сообщению, когда вы устанавливаете отправителя конверта с помощью этого метода. Пример 3. Отправка почты с дополнительными заголовками и установка дополнительного параметра командной строки.

i.e:

<?php
mail("[email protected]", "the subject", $message,
"From: webmaster@{$_SERVER['SERVER_NAME']}", "-fwebmaster@{$_SERVER['SERVER_NAME']}");
?>

После -f вам нужно установить исходящий адрес электронной почты, чтобы предотвратить предупреждение (в данном случае это веб-мастер@-домен-

person SW4    schedule 17.11.2010

Если ваша машина работает на сервере Linux. Ваша установка apache, скорее всего, работает под пользователем «www-data».

вы можете легко понять это, перейдя в /etc/apache2 и набрав

cat envvars | grep APACHE_RUN_USER

все, что находится после '=', - это то, как работает пользовательский apache.

Вам необходимо добавить этого пользователя в файл доверенных пользователей. Этот файл находится в /etc/mail/trusted-users.

просто

nano /etc/mail/trusted-users

и напишите «www-данные».

сохранить, и вы должны быть хорошо идти.

person castis    schedule 17.11.2010
comment
Apache не нужно перезапускать. - person Asaph; 17.11.2010
comment
После этого флаг должен указывать на www-data? '-fwww-data' - person bozdoz; 03.07.2013

-f должен сопровождаться адресом, который вы хотите использовать в качестве адреса конверта в вашей почте.

@mail("[email protected]",$title,$body,$headers,"[email protected]");
person Martin Schapendonk    schedule 17.11.2010
comment
Хорошо, я попробую. Спасибо!! - person Trufa; 17.11.2010

Вы пытались отправить его без флага -f?

Пользователь, от имени которого работает веб-сервер, должен быть добавлен в качестве доверенного пользователя в конфигурацию sendmail, чтобы предотвратить добавление заголовка «X-Warning» к сообщению, когда отправитель конверта (-f) установлен с использованием этого метода. Для пользователей sendmail этот файл называется /etc/mail/trusted-users.

person Jose Vega    schedule 17.11.2010
comment
Да, я пытался, и предположительно это было причиной того, что электронные письма отскакивали от одного конкретного сервера. - person Trufa; 17.11.2010
comment
Они подпрыгивали, потому что у них не было адреса. - person Asaph; 17.11.2010

Вам нужно указать адрес электронной почты после флага -f. Например: "[email protected]". Вам также может понадобиться добавить пользователя, которого запускает ваш веб-сервер, в вашу конфигурацию sendmail.

person Asaph    schedule 17.11.2010