SendMail настройка · 2 min read · Dec 25, 2025
Настройка SendMail для работы в качестве Smarthost и изменения адреса отправителя
Настройка SendMail для работы в качестве Smarthost и изменения адреса отправителя
Этот учебник объясняет, как настроить сервер sendmail для пересылки всех писем, сгенерированных с localhost, на другой SMTP-сервер для отправки писем удалённым получателям. Также объясняется, как изменить адрес отправителя с [email protected] на [email protected].
Пример сценария: У вас есть сервер в производственной среде, который не настроен на пересылку писем внешним образом, но на этом сервере работает приложение, которое отправляет свои логи на указанный адрес электронной почты о его статусе и в случае каких-либо сбоев в работе сервиса. Поскольку sendmail работает локально на имени localhost.localdomain, он пытается переслать письмо с [email protected] на удалённый SMTP-сервер, что будет отклонено по причине того, что localhost.localdomain разрешается в недопустимый IP. Чтобы это преодолеть, мы должны изменить адрес отправителя с [email protected] на [email protected], чтобы другой SMTP-сервер переслал письмо с [email protected] на [email protected] или любой другой адрес, на который вы хотите отправить письмо о статусе сервиса.
ПРИМЕЧАНИЕ: Определённые части этого учебника применимы только к системам на базе Redhat, но в целом процедура применима ко всем серверам sendmail.
IP SMARTHOST : 10.1.1.50
IP SMTP HOST : 10.1.1.10
Проверка установленных RPM:
Сначала необходимо установить RPM-пакеты Sendmail. По умолчанию Sendmail устанавливается вместе с установкой системы.
Проверьте установленные RPM-пакеты sendmail:
root@nerdplanet# rpm -q sendmail sendmail-cfЭти два пакета должны быть перечислены как установленные:
sendmail-8.xx
sendmail-cf-8.xx
Если они ещё не установлены, установите их.
Установка RPM-пакетов
root@nerdplanet# yum install sendmail sendmail-cfЭто должно установить их в вашу систему Linux.
После установки необходимо убедиться, что сервер запущен и автоматически запускается при перезагрузке.
root@nerdplanet# chkconfig sendmail on root@nerdplanet# service sendmail startТеперь сервер работает.
Сначала добавьте IP-адрес удалённого сервера и его доменное имя в /etc/hosts
vi /etc/hosts10.1.1.10 smtp.example.comВам не нужно выполнять вышеуказанный шаг, если ваш локальный DNS может разрешить доменное имя в IP-адрес SMTP-сервера, который настроен для пересылки почты.
Редактирование конфигурационного файла Sendmail для пересылки писем
vi /etc/mail/sendmail.mcПересылка писем на smarthost
dnl # define(`SMART_HOST',`smtp.example.net') Найдите строку, содержащую вышеуказанную запись, и замените её на адрес вашего SMTP-сервера.
define(`SMART_HOST',`smtp.example.com')Затем сохраните файл.
Для изменения адреса отправителя писем создайте файл genericstable.
vi /etc/mail/genericstableВ файле Generics table введите следующие строки:
root [email protected]
mohan [email protected]Вышеуказанные строки означают, что если какие-либо письма отправлены от root, они будут маскироваться и появляться как отправленные с [email protected] вместо [email protected], а если какое-либо письмо отправлено пользователем mohan, оно будет появляться как отправленное с [email protected] вместо [email protected]
Затем сохраните файл.
Включение функций в конфигурационном файле sendmail.
vi /etc/mail/sendmail.mcДобавьте эти строки для включения функций:
FEATURE(masquerade_envelope)dnl
FEATURE(`genericstable')dnl
GENERICS_DOMAIN(`localhost.localdomain')dnlЗатем выполните:
make -C /etc/mailЭто должно скомпилировать все файлы в каталоге /etc/mail и обновить изменения.
После этого перезапустите службу sendmail.
root@nerdplanet# service sendmail restartВот и всё, вы настроили sendmail для работы в качестве smarthost.
Настройка вашего SMTP-сервера для принятия писем от Smarthosts:
ПРИМЕЧАНИЕ: Эта процедура применима только если удалённый живой SMTP-сервер является сервером sendmail, что верно в этом сценарии. Для других SMTP-серверов обратитесь к их документации.
Предположения: Живой SMTP-сервер уже использует FEATURE (‘access_db’..
Отредактируйте файл доступа на живом SMTP-сервере, чтобы принимать письма от смарт-хоста.
vi /etc/mail/accessconnect:10.1.1.50 RELAYcd /etc/mailПересоздайте файл базы данных Access.
/usr/sbin/makemap hash access < accessПерезапустите службу sendmail.
root@smtp# service sendmail restartВот и всё; удалённый SMTP-сервер будет принимать письма от смарт-хоста.
Надеюсь, этот учебник будет полезен кому-то. Пожалуйста, оставьте ваши комментарии.
Оригинальная ссылка: Этот учебник также доступен на http://www.nerdplanet.co.uk.
С уважением!
Мохан.
Get new posts in your inbox
No spam. Unsubscribe anytime.