Вопрос или проблема
У меня много серверов, скажем, что наша корпоративная сеть называется Loosers
. При использовании этой команды
echo "Subject: testmail $(hostname)" | sendmail -v '[email protected]'
Я получаю электронное письмо через несколько минут, но отправитель отображается как [email protected]
вместо чего-то вроде [email protected]
.
Поскольку мой предшественник глупо установил домен на что-то, связанное с моей компанией, я предполагаю, что можно изменить этот адрес электронной почты. Я просматривал свой сервер в /etc/mail/*
, затем документацию sendmail, затем Интернет в поисках конфигурации sendmail
. Нигде не найдено строки looser
или mail
. Я не могу понять, где мой предшественник настроил этого глупого отправителя по умолчанию для sendmail
.
Как я могу настроить отправителя по умолчанию, используемого командой bash sendmail
?
Стандартная электронная почта зависит от учетной записи отправителя: для root
-> [email protected]
Если электронная почта изменена, это может произойти только на серверах minedefang или postfix. Проверьте конфигурацию ваших релейных серверов.
Ответ или решение
Для настройки стандартного отправителя в sendmail необходимо учитывать несколько аспектов конфигурации. Прежде всего, давайте разберёмся, почему отправляемые вами письма имеют не тот адрес отправителя, который вы ожидаете.
Причины появления стандартного отправителя
-
Отправители по умолчанию: Sendmail использует адрес отправителя по умолчанию, если не указан конкретный адрес. Обычно это зависит от пользователя, под которым выполняется отправка. Например, если вы отправляете письмо от имени пользователя
root
, то адрес отправителя может выглядеть какroot@hostname
. -
Конфигурация сервера: Возможно, в конфигурации вашего sendmail (или в других почтовых системах, таких как Postfix, если они используются в этой связке) установлен некорректный домен по умолчанию, что导致ит появление нежелательных адресов отправителя.
Шаги для изменения адреса отправителя
-
Проверка конфигурации Sendmail:
- Изучите файл конфигурации sendmail, который обычно находится в
/etc/mail/sendmail.mc
. В этом файле может быть указан стандартный домен. Посмотрите на строки сdefine(
confDOMAIN_NAME,
looser).
, так как они указывают на домен.
Пример строки:
define(`confDOMAIN_NAME', `mycompany.com')dnl
Если вы нашли строку с доменом
looser
, замените её на необходимый вам домен. - Изучите файл конфигурации sendmail, который обычно находится в
-
Изменение alias файла:
- Проверьте файл
/etc/mail/aliases
на предмет существования пользователей и их переадресации. Не забудьте выполнить командуnewaliases
после внесения изменений.
- Проверьте файл
-
Проверка переменных окружения:
- Вы можете установить переменную окружения
SENDMAIL
в bash, чтобы указать явный адрес отправителя. Это делается следующим образом:export SENDMAIL_FROM="your-address@example.com"
- Вы можете установить переменную окружения
-
Использование командной строки:
- Вы также можете попробовать явно указать адрес отправителя в самом сообщении, добавив строку
From:
:{ echo "From: your-address@example.com" echo "Subject: testmail $(hostname)" echo } | sendmail -v '[email protected]'
- Вы также можете попробовать явно указать адрес отправителя в самом сообщении, добавив строку
Протестируйте изменения
После внесения изменений отправьте тестовое письмо снова и посмотрите, изменился ли адрес отправителя на ожидаемый. Вы можете использовать команду mail
или простую команду sendmail
, предоставляя новый адрес отправителя.
Заключение
Настройка отправителя в sendmail может потребовать некоторых усилий, особенно для поиска и исправления конфигурации, установленной предыдущими администраторами. Однако, следуя вышеуказанным шагам, вы сможете изменить адрес отправителя на то, что соответствует вашим корпоративным требованиям. Если есть необходимость, также рассмотрите возможность использования более современных почтовых серверов, которые могут предложить более простую конфигурацию и более гибкие возможности.