Мини-как за превод на адреси в sendmail
версия 0.0, 6 май 1998
Този документ е част от проекта Linux HOWTO.
Предполагаме също, че имате инсталирана доста нова версия на програмата sendmail на Eric Allman (версия 8.8.8 е актуална към момента на писане и трябва да работи добре).
Този документ се отнася отчасти до специфични характеристики на системата Debian GNU/Linux; потребителите на други дистрибуции трябва да бъдат внимателни.
Уверете се, че имате под ръка следната информация:
Адресът на пощенския сървър на вашия доставчик
Конфигурационният файл, който планираме да направим, има две основни цели:
Препращането на поща между всеки двама локални потребители трябва да работи.
За да постигнем това, ще използваме функцията genericstable.
Ще поставим всички конфигурационни файлове на sendmail в отделна поддиректория на /etc: /etc/mail. Обикновено sendmail използва файлове, намерени в /etc . За да избегнем възможни проблеми, нека създадем файл със символна връзка /etc/sendmail.cf, сочещ към /etc/mail/sendmail.cf.
Директорията /etc/mail ще съдържа следните файлове:
genericsdomain - съдържа информация за конфигурацията на вашия локален хост (хост)
sendmail.cf - конфигурационен файл на sendmail
sendmail.mc - изходен код на sendmail.cf.
Някои от тези файлове ще бъдат придружени от .db файлове. Те съдържат хеширани бази данни, използвани директно от sendmail.
Вместо да се занимаваме с тези правила, ще разчитаме на макро процесора m4, за да сглобим нашия конфигурационен файл от готовите части, изпратени със sendmail.
Нека да разгледаме първите редове на файла sendmail.mc:
include(/usr/lib/sendmail.cf/m4/cf.m4) VERSIONID(`sendmail.mc - [имейл защитен]') OSTYPE(debian) define(`FILE_ALIAS',`/etc/mail/aliases')
Първо е включен файлът cf.m4 Този макро файл m4 съдържа много дефиниции на макроси за останалата част от файла. Уверете се, че указаният от вас път е правилен - този, който имаме, е типичен за Debian GNU/Linux. Макросът OSTYPE се използва за задаване на някои важни конфигурационни стойности. Ако нямате Debian, трябва да замените "debian" с "linux". ALIAS_FILE казва на sendmail къде да търси списъка с псевдоними.
Следните редове казват на sendmail да използва функцията genericstable, както и конфигурационните файлове, необходими за това:
FEATURE(masquerade_envelope) FEATURE(genericstable, `hash -o /etc/mail/genericstable') GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain')
Тук заменете mail-out.your.provider с пълното име на хост на вашия ISP.
Последните два реда включват дефиниции на "пощенските програми", от които sendmail се нуждае, за да определи действията, необходими за работа с различни типове поща:
За да създадете файл sendmail.cf от sendmail.mc, изпълнете следното (като root):
# m4 sendmail.mc > _sendmail.cf # mv -f _sendmail.cf sendmail.cf
Имайте предвид, че използваната тук техника е да изведете резултата във временен файл и след това да прехвърлите този файл на желаното място. Това помага да се предотврати четенето на частично завършен конфигурационен файл от sendmail.
От съображения за производителност, sendmail не използва този текст директно, а разчита на "хеширана" версия. За да го създадете, въведете:
Файлът с псевдоними съдържа локални имена, които са валидни само завътрешна поща. Това е приложимо за администратори, като например root, който получава автоматично генерирани съобщения от вашата система.
Най-добрият начин да стартирате файла /etc/mail/aliases би бил нещо подобно:
root: fred news: root postmaster: root mail: root www: root nobody: /dev/null MAILER-DAEMON: никой
Както при genericstable, файлът с псевдоними може да съдържа множество редове. Следователно би било неефективно за sendmail да използва текстов файл, както е описано по-горе. За файла с псевдоними се използва същият механизъм, както за genericstable - генерира се хеширана база данни. Вместо да стартирате makemap директно, можете да въведете newaliases. Той автоматично ще се погрижи за всичко, което трябва да се направи.
Документацията е включена в разпространението на източника на sendmail. Прочетете го, особено файла cf/README.