PHP mail() не от root

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

PHP mail() не от root

Непрочитанное сообщение BlitzKrieg » 2010-11-05 11:45:35

Есть сервер, на нем jail. В jail apache+mod_php. Если сервер после перезагрузки, то отправитель сообщения функцией mail - root@domain.ru.
Если сделать /etc/rc.d/jail restart jail то отправитель меняется то на юзера из группы wheel самого джейла, то на юзера из группы wheel корневой системы абсолютно не закономерно.
В php.ini пробовал менять, ничего не дает. Хочется чтобы это был допустим apache@domain.ru

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: PHP mail() не от root

Непрочитанное сообщение rmn » 2010-11-05 14:19:48

Пример 2. Sending mail with extra headers.

The addition of basic headers, telling the MUA the From and Reply-To addresses:

Код: Выделить всё

<?php
$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();

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

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: PHP mail() не от root

Непрочитанное сообщение BlitzKrieg » 2010-11-05 21:15:10

Нене эт все понятно. Вопрос не о том. Ретурн-паф то я не поменяю так.

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: PHP mail() не от root

Непрочитанное сообщение BlitzKrieg » 2010-11-09 11:58:05

Выручайте идеей. Ретурн-паф таки не тот, что нужен. В итоге все отлупы на рута валятся. Ведь должно быть решение, чтобы php подсказать какой адрес использовать.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: PHP mail() не от root

Непрочитанное сообщение schizoid » 2010-11-09 17:40:13

у мну ретурны с сайта валятся на www@domain.ru, а уже с www алиас на мну...
ядерный взрыв...смертельно красиво...жаль, что не вечно...

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: PHP mail() не от root

Непрочитанное сообщение BlitzKrieg » 2010-11-09 17:49:42

у меня бы тоже валились если бы их отправлял www@domain.ru.
Суть вопрос в том, как апач заставить отправлять письмо не рутовым процессом. В линупсах так и было без доп. манипуляций. apache запускался от apache:apache и соотв. письмо от него отправлялось.
Тут еще и проблема в том что если джейл рестартнуть то тогда уже отправитель не рут@домен, а ухйпоймикто.
Расскажите как у вас письма шлются?
У меня сендмыл заменен минисендмылом кот. умеет отправлять через хост, на том хосту почтарь.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: PHP mail() не от root

Непрочитанное сообщение schizoid » 2010-11-09 18:47:12

у мну тоже сайт и почтарь на разных серверах.
там где сайт

Код: Выделить всё

# ps -aux| grep httpd
root   56422  0,0  0,9 17528  8932  ??  Ss   пт17      0:23,70 /usr/local/sbin/httpd
www    92352  0,0  2,3 30968 23440  ??  I    17:09     0:14,68 /usr/local/sbin/httpd
www    92353  0,0  2,3 30968 23444  ??  I    17:09     0:18,07 /usr/local/sbin/httpd
www    92474  0,0  2,2 29944 22396  ??  I    17:23     0:01,51 /usr/local/sbin/httpd
www    92479  0,0  2,2 29944 22404  ??  I    17:24     0:01,67 /usr/local/sbin/httpd
www    92487  0,0  2,1 28920 21384  ??  I    17:25     0:01,90 /usr/local/sbin/httpd
www    92489  0,0  2,2 29944 22376  ??  I    17:25     0:01,45 /usr/local/sbin/httpd
www    92490  0,0  1,9 27896 19992  ??  I    17:25     0:00,76 /usr/local/sbin/httpd
www    92492  0,0  2,0 27896 20332  ??  I    17:25     0:00,78 /usr/local/sbin/httpd
www    92493  0,0  0,9 17528  8996  ??  I    17:26     0:00,00 /usr/local/sbin/httpd
www    92494  0,0  2,0 28920 20780  ??  I    17:26     0:00,53 /usr/local/sbin/httpd
дальше на счет сендмыла на серваке с сайтом (это заметка с локального сайта):
Настройка relay в sendmail

Для того, чтобы через сайт можно было слать почту, заходим в /etc/mail и добавляем следующее:

ee /etc/mail/web.brain.lan.mc

FEATURE(masquerade_envelope) # пишем только выше опции MAILER, ибо у меня sendmail собирался но с ошибкой (*** ERROR: FEATURE() should be before MAILER())
MAILER(local)
MAILER(smtp)
MASQUERADE_AS(`domain.ua') #говорим sendmail чтоб подсталял в поле from:user@domain.ua, а не полное имя хоста from:user@host1.mydomain.com

Также если надо указать sendmail релеить почту розкоменнтируем строчку
define(`SMART_HOST', `domain.ua') и прописываем свой релей после этого пересобираем
make
make install
make restart

Далее /usr/local/etc/php.ini приводим к такому виду:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = sendmail -t -i
сам почтарь - exim.
там собсна все просто.

письма шлются от юзера www

Код: Выделить всё

2010-11-09 17:38:17 "ACL m0 set dafault as 0 for host=web.brain.lan [192.168.0.100] with HELO=web.brain.lan (domain in e-mail = domain.ua)"
2010-11-09 17:38:17 Delay 0s (spam counter = 0; white host = 0) for web.brain.lan [192.168.0.100] with HELO=web.brain.lan. Mail from www@domain.ua to eugene@domain.ua.
2010-11-09 17:38:17 1PFqH3-000Mzf-6S <= www@domain.ua H=web.brain.lan [192.168.0.100] I=[192.168.0.90]:25 P=esmtp S=1161 id=201011091535.oA9FZ0UX092625@web.brain.lan from <www@domain.ua> for eugene@domain.ua                                                                                                                                                                     
2010-11-09 17:38:17 1PFqH3-000Mzf-6S => backup_out (backup_out@domain.ua) <system-filter> R=localuser T=local_delivery
2010-11-09 17:38:17 1PFqH3-000Mzf-6S => backup_in (backup_in@domain.ua) <system-filter> R=localuser T=local_delivery
2010-11-09 17:38:17 1PFqH3-000Mzf-6S => eugene <eugene@domain.ua> R=localuser T=local_delivery
2010-11-09 17:38:17 1PFqH3-000Mzf-6S Completed
есть также сайт на серваке где почтовик...
сайт для рассылки акций клинтам
код выдрал в инете (тут http://www.php-mail.ru/)
иногда , когда манагеры ошибаются, отлуп такой:

Код: Выделить всё

Return-path: <www@domain.ua>
Received: from www by domain.ua with local (Exim 4.69 (FreeBSD))
	(envelope-from <www@domain.ua>)
	id 1PB3bp-00027O-VV
	for cit@cg.ukrtel.ne; Wed, 27 Oct 2010 13:51:58 +0300
To: cit@cg.ukrtel.ne
Subject: =?windows-1251?B?8e/l9u/w5eTr7ubl7ejl?=
Date: Wed, 27 Oct 2010 13:51:57 +0300
From: "mediastorm@domain.ua" <mediastorm@domain.ua>
Message-ID: <e9f308562ec62375e80ad49dfcafed64@spam.brain.lan>
X-Priority: 3
X-Mailer: PHPMailer [version 1.73]
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/html; charset="windows-1251"
Sender: World Wide Web Owner <www@domain.ua>
или мы о разных вещах говорим?:)
ядерный взрыв...смертельно красиво...жаль, что не вечно...

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: PHP mail() не от root

Непрочитанное сообщение BlitzKrieg » 2010-11-09 19:36:38

Видимо о разных. У меня письмо генерится от root@domain.ru, у вас www@domain.ru. У меня если перезапустить джейл в котором апач, то вообще то от юзера который используется для su корневой системы то для su джейла.
Пересборку сендмыла я заменил просто минисендмылом.
ВОт например, это после рестарта джейла

From jailadmin@domain.ru Tue Nov 09 12:02:37 2010
jailadmin пользователь для логина в джейл

А вот до перезапуска
From root@domain.ru Fri Nov 05 03:04:36 2010

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: PHP mail() не от root

Непрочитанное сообщение BlitzKrieg » 2010-11-09 19:43:08

Фактически если например в консоли сделать cat /etc/resolv.conf|mail mail@domain.ru то придет письмо от юзера который залогинился до su и выполнил mail.
Вот это и происходит с апачем.
Мне нужно каким-то образом сделать, чтобы письмо всегда отправлялось от допустим apache@domain.ru www@domain.ru etc

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: PHP mail() не от root

Непрочитанное сообщение BlitzKrieg » 2010-11-09 19:51:15

Прошу прощения, разобрался. Этот же минисындмыл умеет сам
usage: /usr/local/sbin/mini_sendmail [-f<name>] [-t] [-s<server>] [-p<port>] [-T<timeout>] [-v] [address ...]