Назад | Перейти на главную страницу

apache sendmail: пытается изменить адрес пользователя «от» с apache на учетную запись домена

Прошу прощения, если я задаю вопрос, на который уже ответил, но моя проблема не в том, что я не нашел ответа. Фактически, я нашел полдюжины различных «решений» своей проблемы, перепробовал их все в различных комбинациях и постоянно безуспешно.

Цель

Все, что я хочу сделать, это изменить адрес в конверте "от" для всех писем, отправленных с apache@localhost.localdomain к web@domain.org, всегда.


Что я уже сделал

Я использую Apache, PHP и sendmail на CentOS 5.5, linux@localhost.localdomain. У нас есть SMTP-сервер 192.168.0.4. Все учетные записи электронной почты домена находятся по адресу @ domain.org.

Я успешно настроил "умный хост", используя эту строку в sendmail.mc файл:

define(`SMART_HOST', `192.168.0.4')dnl

Затем я настроил маскарад и надеялся, что это решит проблему. У меня это в файле .mc:

FEATURE(`masquerade_entire_domain')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`allmasquerade')dnl
MASQUERADE_AS(`domain.org')dnl
MASQUERADE_DOMAIN(`domain.org.')dnl
MASQUERADE_DOMAIN(`localhost.localdomain.')dnl

При этом перезаписываются адреса «до», но не «от». Тестирование из командной строки:

sendmail -v user@example.com

Всегда отображается от локального пользователя (в данном случае кореньили моя локальная учетная запись пользователя).

Я читал, что команда "sendmail" иногда позволяет обойти маскировку. Тем не менее, использование команды «mail» дает тот же результат.

После этого я исследовал несколько «решений», в том числе:

На все это никак не повлияет.


Последнее, что я пробовал

Итак, я решил пойти в другом направлении и попытаться установить адрес конверта "от" через PHP, используя либо конфигурацию в /etc/php.ini, или добавив -f параметр функции mail () или Отправить почту команда.

Если я запустил эту команду:

sendmail -v -f web@domain.org user@example.com

Я получаю эту ошибку в / var / log / maillog:

Mar 30 08:56:16 localhost sendmail[24022]: p2UCuE8w024022: from=web@domain.org, size=5, class=0, nrcpts=1, msgid=<201103301256.p2UCuE8w024022@localhost.localdomain>, relay=user@localhost
Mar 30 08:56:19 localhost sendmail[24022]: p2UCuE8w024022: to=user@example.com, ctladdr=web@domain.org (500/502), delay=00:00:05, xdelay=00:00:03, mailer=relay, pri=30005, relay=[192.168.0.4] [192.168.0.4], dsn=5.1.1, stat=User unknown
Mar 30 08:56:19 localhost sendmail[24022]: p2UCuE8w024022: p2UCuE8x024022: DSN: User unknown
Mar 30 08:56:23 localhost sendmail[24022]: p2UCuE8x024022: to=user@example.com, delay=00:00:04, xdelay=00:00:04, mailer=relay, pri=31029, relay=[192.168.0.4] [192.168.0.4], dsn=2.0.0, stat=Sent (Ok: queued as B5E2E40E0A2)

По сути, это ошибка 550 "Пользователь неизвестен".


Помогите

Пожалуйста помоги. Что мне нужно изменить? Стоит ли мне просто начать с файла sendmail.mc? В нем заложено множество параметров конфигурации за несколько дней попыток. Почему изменение адреса конверта "от" через командную строку вызывает ошибку "Пользователь неизвестен"?

Я понял, используя параметр -f. Я начал модифицировать sendmail.mc с нуля, включив только свойства MASQUERADE_AS.

Оказывается, это был отказ брандмауэра нашей сети. Я добавил исключение в брандмауэр. Вздох...

РЕДАКТИРОВАТЬ: Я решил это с помощью POSTFIX. Забудьте о sendmail ...