Warning: Invalid argument supplied for foreach() in /var/www/www-root/data/www/wikisurv.ru/fpars.php on line 1164
 Как установить и настроить программу Sendmail

Энциклопедия советов

Ответы на все вопросы

Есть вопрос? Есть ответ...

Если у вас есть вопрос введите его в форме ниже!

Как установить и настроить программу Sendmail

| Установка и удаление программного обеспечения
Это практическое руководство описывает процесс настройки обработки электронной почты после регистрации домена. Программное обеспечение Sendmail является программным обеспечением операционных систем (ОС) Unix/Linux, которое занимается обработкой электронной почты. Это не почтовый агент пользователя (ПАП), как те почтовые программы, которые вы знаете. Это просто программа доставки. Sendmail ? это агент отправки почты (АОП). Он обрабатывает только доставку. Сетевые провайдеры используют Sendmail для доставки почты локальным пользователям в других сетях.

Ваши действия

Способ 1 из 6: скачать Sendmail

  1. Скачайте Sendmail . Вам может быть автоматически предложено краткое начальное сообщение, которое будет показывать текущую версию. Инструкции, описанные ниже, подходят к версии 8.10.0 и новее.
  2. Соберите и установите Sendmail на свою машину. В большинстве случаев этот процесс включает в себя распаковку дистрибутива, чтение файлов README и sendmail/README, и набор команды Build в директории Sendmail. Посмотрите файл INSTALL в корневом каталоге дистрибутива для точных деталей.

Способ 2 из 6: установка Sendmail

  1. Подразумевается, что Sendmail использует информацию из системы доменных имен (DNS), чтобы выяснить, который из IP-адресов относится к какому-либо почтовому ящику.
  2. Выберите доступное доменное имя. В нашем примере мы будем использовать yourdomain.com.
  3. Сконфигурируйте свою DNS на сервере. Установите две машины как первичное и вторичное имена сервера для вашего домена. Предполагается, что навыки настройки уже есть, в противном случае, настоятельно рекомендуется прочитать книгу О’Рейли «DNS и связка» 4-е издание. Перед продолжением ознакомьтесь со связкой.
  4. Сконфигурируйте почтовые записи (MX record) для своего домена (Замечание: записи типа CNAME использоваться не могут; для подробностей посмотрите параграф 5.2.2 рабочих заметок 1123). Почтовые записи объясняются в книге О’Рейли; 2-е издание дает обзор в параграфе 15.3 и описывает как их сконфигурировать в параграфе 21.3, в свою очередь, третье издание объясняет все о них в параграфе 9.3. У вас есть два варианта для почтовых записей:
  5. Определитесь со своим методом подключения:

    • Если почтовый сервер, обслуживающий ваш новый домен, имеет постоянное подключение к сети Интернет, то он должен стать первичным почтовым (MX) хостом для домена. В этой конфигурации ваши почтовые записи будут выглядеть следующим образом:
      • yourdomain.com. IN MX 10 yourmailserver.yourdomain.com.
    • В другом случае вам потребуется найти другую машину, чтобы образовать очередь почты для вашего домена, когда вы не подключены. Не забудьте сначала получить подтверждение от владельца машины. Эта машина должна быть сконфигурирована для ретрансляции на ваш домен. Если запущен Sendmail, то это можно легко сделать, просто добавив ваш домен в файл доменов ретрансляции на этой машине. Вам следует перенаправить ваши почтовые записи на эту машину. Например:
    • yourdomain.com. IN MX 10 yourmailserver.yourdomain.com.
    • yourdomain.com. IN MX 20 othermailserver.otherdomain.com.
  6. Теперь, когда установлены имена серверов, зарегистрируйте свой домен, используя одну из записей. Когда будете регистрироваться, сообщите данные о двух серверных именах, и затем домен будет указывать на ваш сервер.

Способ 3 из 6: сконфигурируйте Sendmail

  1. Прочитайте внимательно cf/README файл. Это даст вам инструкции по созданию .mc файла в каталоге cf/cf . Ваш файл mailserver.mc обычно будет выглядеть так:

    • divert(-1)dnl
    • #
    • # Этот файл содержит глобальные определения для yourdomain.com
    • #
    • divert(0)dnl
    • VERSIONID(`@(#)mailserver.mc 1.0 (yourdomain.com) 5/1/97′)
    • OSTYPE(solaris2)dnl
    • DOMAIN(yourdomain.com)dnl
    • FEATURE(`virtusertable’, `dbm /etc/mail/virtusertable’)dnl
    • MAILER(local)dnl
    • MAILER(smtp)dnl
    • Ваша текущая операционная система (ОС) будет заменена на solaris2.
  2. Стандартный файл cf/domain/yourdomain.com.m4 выглядит так:

    • divert(-1)dnl
    • #
    • # Этот файл содержит глобальные определения для yourdomain.com
    • #
    • divert(0)dnl
    • VERSIONID(`@(#)yourdomain.com.m4 1.0 (yourdomain.com) 5/1/97′)
    • FEATURE(`use_cw_file’)dnl
  3. Также он может иметь несколько другие функции feature() и определения define(). Ключом ко всему этого является виртуальная таблица пользователя.
  4. Сгенерируйте себе /etc/mail/sendmail.cf файл из своего mailserver.mc файла следующим образом:

    • cd sendmail-VERSION/cf/cf
    • /Build mailserver.cf
    • cp mailserver.cf /etc/mail/sendmail.cf
  5. Создайте виртуальную таблицу пользователя. Это детально объясняется в книге Sendmail, в параграфе 19.6.28 во 2-м издании, или в параграфе 4.8.51 издания 3-го; здесь дан обзор. Эта таблица является базой данных, которая распределяет виртуальные адреса по адресам физическим. Вы создаете текстовый файл, в котором каждая строка содержит пару ключ/значение, разделенную TAB. Например:

    • Пример 1:
      • joe@yourdomain.com jschmoe
      • jane@yourdomain.com jdoe@othercompany.com
      • @yourdomain.com jschmoe
        • В этом первом примере адрес joe@yourdomain.com будет назначен локальному пользователю с именем jschmoe; jane@yourdomain.com назначен удаленному пользователю jdoe@othercompany.com, и любой, у кого имя yourdomain.com также будет направлен на jschmoe.
    • Пример 2:
      • joe@yourdomain.com    jschmoe%3
      • bogus@yourdomain.com &npsp;  error:nouser No such user here(ошибка: нет пользователя Нет пользователя с таким именем)
      • list@yourdomain.com    yourdomain-list
      • @yourdomain.com    %1@othercompany.com
        • В этом втором примере адрес joe@yourdomain.com будет направлен на локального пользователя jschmoe%3 (посмотрите в замечании 3 ниже для пояснения, что означает %3), адрес bogus@yourdomain.com вернет приведенную ошибку, адрес list@yourdomain.com будет направлен на локального пользователя yourdomain-list (которого вы можете использовать как файл псевдонимов для окончательного решения) и любой другой пользователь с yourdomain.com будет направлен к удаленному пользователю с тем же самым именем, но с othercompany.com.
  6. Если у вас имеются локальные пользователи, скажем Сэм, и в файле нет ключа для sam@yourdomain.com и нет ключа для универсальной ловушки @yourdomain.com, то Sendmail вернется к локальному пользователю по имени Сэм при прохождении sam@yourdomain.com. Чтобы предотвратить это, вы должны использовать также универсальную ловушку или явно заданный ключ для sam@yourdomain.com; пример с error:nouser (ошибка: нет пользователя) , описанная выше, может быть полезна в этой ситуации.
  7. Если вы хотите, чтобы виртуальный адрес распределялся между несколькими физическими, то вам необходимо сделать это в обход. Назначьте виртуальному адресу распределяться на локальные псевдонимы, затем назначьте, чтобы локальный адрес распределялся между набором адресов. Например, в виртуальной таблице пользователя:

    • joe@yourdomain.com localjoe
      затем в файле псевдонимов:
    • localjoe: joe@othercompany.com, jane@othercompany.com
    • В примере, приведенном выше:
      • joe@yourdomain.com jschmoe%3
  8. %3 является сохранением необязательной +детализация части исходного адреса. В общем, +детализация обозначает, что когда Sendmail получает адрес вроде пользователь +детализация@domain, то если домен находится в классе w (смотрите шаг №7 ниже), sendmail осуществляет проверку, чтобы выяснить может ли пользователь+детализация быть определен, затем просто возвращается, если такого пользователя нет. Таким образом, все:
    • joe@yourdomain.com
    • joe+foo@yourdomain.com
    • joe+reallylongextrapart@yourdomain.com
      должны все соответствовать записи выше, с %3 сохранением +детализация(detail) части ничего, +foo и +действительно длинная часть(reallylongextrapart) соответственно.
    • Допускается несколько доменов, причем виртуальные адреса в каждом из них независимы. Так, для примера, у вас может быть:
      • joe@yourdomain1.com localjoe
      • joe@yourdomain2.com joe@othercompany.com
      • joe@yourdomain3.com localjoe
      • joe@yourdomain4.com error:nouser No such user here (ошибка: нет пользователя Нет пользователя с таким именем)
  9. Для людей, занимающихся администрированием нескольких доменов, может оказаться легче хранить список каждого домена в отдельном файле, затем написать короткую программку, чтобы соединить все подобные файлы вместе в главную виртуальную таблицу пользователя. Но мы забегаем вперед; это следующий шаг…

Способ 4 из 6: построение Пользовательской Таблицы Sendmail

  1. Постройте виртуальную таблицу пользователя. Если приведенный выше текстовый файл виртуальной таблицы находится в sourcefile, и вы используете тип базы данных dbm, то следует воспользоваться командой:

    • makemap dbm /etc/mail/virtusertable < sourcefile
    • Замечание:если вы построили Sendmailс NEWDB вместо NDBM, то в вышеприведенных строках используйте хэш вместо dbm.
    • Это создаст один или несколько нетекстовых файлов (обычно /etc/mail/virtusertable.dir и /etc/mail/virtusertable.pag, или /etc/mail/virtusertable.db), но на самом деле не изменит сам/etc/mail/virtusertable,так что это рекомендованное положение для sourcefile.
    • Если вы хотите преобразовать обратно имена локальных пользователей для исходящей почты, то вам понадобится добавить параметры для таблицы настроек в свой .mc файл:
      • FEATURE(`genericstable’, `dbm /etc/mail/genericstable’)dnl
      • GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains’)dnl
    • И вам необходимо создать таблицу настроек/etc/mail/genericstable, которая похожа на /etc/mail/virtusertable описанную выше, за исключением того, что столбцы меняются местами:
      • jschmoe joe@yourdomain.com

Способ 5 из 6: добавление своих доменных имен в Sendmail

  1. Дайте доменное имя в sendmailкаждому классу w. Обычно это производится добавлением строки в /etc/mail/local-host-names (известный как /etc/sendmail.cw до версии 8.10) со значением каждого доменного имени. Подобным образом, если вы используете таблицу настроек(genericstable), то вам нужно добавить любые домены, имена которых вы хотите преобразовывать обратно, в /etc/mail/generics-domains.
  2. Перезапустите или дайте команду SIGHUP sendmail.
  3. Вам не нужно перезагружать sendmail при смене виртуального пользователя или таблиц с параметрами настройки, только при изменении файла /etc/mail/sendmail.cf или файлов класса, вроде /etc/mail/local-host-names.

    • Дополнительный шаг требуется для хостов без постоянного подключения. Как было замечено в разделе конфигурации MX, если вы пользуетесь другим хостом, чтобы поставить свою почту в очередь до того момента, когда вы подсоединитесь, вам придется принудительно отправить почту в очередь на вторичный почтовый сервер. Чтобы это завершить, когда ваш первичный сервер подключится, вам следует запустить программку etrn.pl которая является составной частью каталога дистрибутива sendmail:
      • etrn.pl secondary-mx-host yourdomain.com
      • Советуют поставить это в конец программы запуска Sendmail на любом первичном MX. Это может быть особенно полезно в качестве последовательного выполнения, когда какой-либо скрипт инициирует соединение на первичном MX без постоянного подключения.
      • На данном этапе вы должны быть установлены, и люди должны иметь возможность отправлять электронные сообщения на адреса @yourdomain.com.

Способ 6 из 6: проверка вашего конфигурационного файла

  1. Протестируйте свое соединение и убедитесь, что все работает, как и ожидалось перед объявлением нового доменного имени и почтовых адресов для этого домена. Если что-то работает не так, как ожидалось, вы можете сделать тест с помощью режима тестирования Sendmail:

    • sendmail -bt
    • Здесь несколько примеров того, что можно попробовать в тестовом режиме (убедитесь, что домен находится в классе w:):
      • $=w
      • # работает ли карта?
      • /map virtuser joe@yourdomain.com
      • /map virtuser jane@yourdomain.com
      • /map virtuser @yourdomain.com
      • Работает ли переименование? #**,0 joe@yourdomain.com #**,0 some@yourdomain.com

Рекомендации

  • Что делает Sendmail :
    • Слушает сетевые порты в ожидании почты.
    • Сортирует почту и доставляет ее на локальные или внешние сервера.
    • Добавляет почту к файлам или добавляет запись о ней с помощью других программ.
    • Создает очередь почты (если немедленная доставка закончилась неудачно).
    • Преобразовывает почтовые адреса в/из имен пользователей, или оперирует со списками отправки почты.
    • Читает правила для специальной обработки почты, так чтобы они могли отлавливать спам или проверять на корректность.
  • Если вы собрали Sendmail с NEWDB вместо NDBM, то вам придется использовать хэш вместо dbm в строке выше.
  • DNS and BIND by Cricket Liu and Paul Albitz (O’Reilly Media, ISBN 0596100574, Sebastopol, CA, 2006))
  • The Sendmail Book by by Bryan Costales and Eric Allman (O’Reilly Media, ISBN 1565928393, Sebastopol, CA, 2002)
  • — Download Sendmail

Ответить

Ваш email нигде не будет опубликован. Обязательные поля отмечены *

Вы можете использовать HTML теги и атрибуты <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>