Прошу прощения, если я задаю вопрос, на который уже ответил, но моя проблема не в том, что я не нашел ответа. Фактически, я нашел полдюжины различных «решений» своей проблемы, перепробовал их все в различных комбинациях и постоянно безуспешно.
Все, что я хочу сделать, это изменить адрес в конверте "от" для всех писем, отправленных с 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 ...