The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Почтовая очередь с помощью qmail (mail qmail queue)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: mail, qmail, queue,  (найти похожие документы)
From: Юрий Козлов <[email protected]> Newsgroups: http://spslug.sposad.ru Date: Mon, 27 Aug 1999 13:01:37 +0000 (UTC) Subject: Почтовая очередь с помощью qmail Автор: D. L. Vander Woude <[email protected]> Перевод: Юрий Козлов <[email protected]> Почтовая очередь с помощью qmail ВНИМАНИЕ: Этот документ только для qmail версии 1.03. В этом документе содержатся основные шаги, которые я сделал чтобы настроить qmail на автономной linux машине с модемным выходом, динамически выделяемым ip адресом, ppp соединением с internet через ISP. Внимание: я не эксперт по unix или настройкам почты. Я не гарантирую что у тебя это будет работать, но это может помочь. По существу, информация, представленная здесь не является первоначальным источником, это всего лишь попытка организовать то, что я нашел полезным в документах qmail, usenet новостях, и в архиве списка рассылки. Благодарности идут полностью этим авторам. Содержание : 1. Преамбула 2. Поиск необходимого программного обеспечения. 3. Компиляция и установка qmail. 4. Компиляция и установка qmail serialmail и ucspi-tcp. 5. Настройки твоего сайта. 6. Отправка почты "наружу". 7. Автоматизация с помощью ip-up. 8. Выборочная трансляция и поддержка pop. 9. Эпилог Преамбула: Непостоянное соединение с internet широко распространено среди пользователей linux, однако, документации по настройке почты для этой ситуации не особенно просто следовать или закончить. Задача такая - имеется почта, которая посылается по локальной сети (или на одной машине) , или сохраняется на твоей машине пока не установлено ppp соединение, затем почтовик (MTA - агент транспортировки почты) соединяется с MTA твоего ISP и твоя почта отправляется дальше. Это звучит достаточно просто, но пытаться убедить sendmail или smail сделать это - одна нервотрепка. Я попробовал оба. Я обнаружил, что sendmail трудно настроить правильно. Не желая тратить впустую много часов, только для того чтобы только познакомиться с основными опциями настройки, я бросил sendmail и попробовал smail. Я был способен заставить smail как-то работать, но этого оказалось явно недостаточно. Я могу сказать, что эти программы не разрабатывались для работы при таких условиях. Если ты все еще хочешь попытаться, то смотри Mail-Queue mini HOWTO (http://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/Mail-Queue). Когда этот вопрос задается в usenet и где-нибудь еще, то серьезные пользователи unix всегда отвечают "используйте UUCP". Это может быть и правильный ответ, я не знаю. Кроме того, я не знаю, поддерживает ли это MTA моего ISP, и я не знаю как выяснить это. (Только попробуйте позвонить в службу поддержки и получите один ответ - нет.) Рассмотрим несколько других вещей. Во-первых, ты должен иметь работающий ppp. Как это сделать смотри в PPP-HOWTO. Во-вторых, я уверен, что многие из Вас имеют пару машин в локальной сети с фиктивными адресами IP и фиктивными именами доменов. Это не проблема, но будь уверен, что твои IP адреса предназначены для такого использования - смотри Network-HOWTO. Сделав это, тем самым гарантируется, что любой пакет, который каким-то образом нашел выход из твоей сети в internet будет игнорироваться и не вызовет каких-нибудь проблем. Также, много хорошей информации в Mail-HOWTO. Dave Sill написал очень полезный и информативный документ по qmail, называемый ]Life With Qmail (http://web.infoave.net/~dsill/lwq.html). Теперь про qmail. Qmail, вместе с несколькими дополнениями написал Dan Bernstein (ftp://koobera.math.uic.edu/www/qmail.html), разобравшись с этой ситуацией очень хорошо. Qmail можно относительно легко настроить так, чтобы почта, адресованная за пределы локальной сети или машины, доставлялась в специальный почтовый каталог. Для отправки почты "наружу" вызывается программа maildirsmtp и все содержимое этого каталога отправляется MTA твоего ISP для маршрутизации в конечный пункт назначения. Получение почты не такая большая проблема с тех пор как большинство (все?) ISP стали поддерживать POP протокол. Для этого я использую fetchmail, а он гибкий и легко настраивается (доступен с любого зеркала Sunsite). По умолчанию, Qmail использует уникальную систему "Mailbox". Почта хранится не в обычном месте /var/spool/mail/username, а в файле Mailbox в домашнем каталоге пользователя (если ты хочешь оставить систему /var/spool/mail/username, то прочитай INSTALL.vsm из исходной документации). Для этого есть несколько причин - пожалуйста, посмотри документацию qmail. Одна из них, использование системы "maildir" для большей безопасности; подробнее смотри в документации. В этом документе будет использоваться система Mailbox. Единожды правильно установленный и запущенный qmail, обеспечивает бесперебойную доставку и отправку почты из любого стандартного почтового клиента. Аналогично, fetchmail автоматически принимает входящую почту для доставки в твой Mailbox и для этого не требуется каких-то специальных настроек (смотри ниже). Шаг 1. Поиск необходимого программного обеспечения: Первичное расположение программного обеспечения поддерживается автором (ftp://koobera.math.uic.edu/www/qmail.html). qmail версии 1.03 свободно доступен, и есть коммерческая поддержка (подробнее смотри на странице http://qmail.org). Требуются такие архивы: * qmail ftp://koobera.math.uic.edu/www/qmail.html * serialmail ftp://koobera.math.uic.edu/www/serialmail.html * ucspi-tcp ftp://koobera.math.uic.edu/www/ucspi-tcp.html Шаг 2. Компиляция и установка qmail: Компилируй и установи qmail согласно указаниям из файла INSTALL. Ты должен строго придерживаться этих указаний. Это немного сложнее чем установка среднего приложения, но в ней нет ничего трудного. Обрати внимание на эти пункты: * Заведи пользователей и группы для qmail точно как указано, перед компиляцией (смотри INSTALL.ids). * Выполни "минимум команд для жизни". Если ты не запустил DNS то ./config может не сработать. В этом случае, создай файл /var/qmail/control/me с указанным в нем полным именем твоей машины полностью на одной строке. Это сработает даже если это не настоящее имя или имя твое домена ISP. например #echo 'mycomputer.mydomain.com' > /var/qmail/control/me * Как указывалось выше, этот документ предполагает локальную доставку в ~user/Mailbox, прочитай INSTALL.mbox. Если это твой выбор - игнорируй INSTALL.maildir. Как root, создай ссылку, как написано, в /var/spool/mail/user на ~user/Mailbox. * Для шага 8 скопируй /var/qmail/boot/home в /var/qmail/rc. Версия "proc", для procmail, которому необходимы изменения в исходном коде procmail - сделай это позднее, если потребуется. * Из TEST.deliver выполни Local-local тест и Local-error тест. Local-remote, естественно, еще не работает. Шаг 3. Компиляция и установка qmail serialmail и ucspi-tcp: Если qmail запускается и локальные тесты проходят, то продолжай установку. Компилируй и установи serialmail и ucspi-tcp. Для них не нужны специальные настройки. Только следуй файлам INSTALL. Шаг 4. Настройки твоего сайта: Несколько определений для понятности команд ниже: yourlocalname = твое имя на локальной машине. yourdomain = твое имя локального домена(например mydomain как в mydomain.com) yourispname = твое имя у ISP (имя бюджета у поставщика internet услуг) isp = твой ISP (поставщик internet услуг, например earthlink, att, mindspring...) * Во-первых, создай maildir для исходящей почты в домашнем каталоге "alias" ( /var/qmail/alias). #maildirmake ~alias/pppdir #chown -R alias ~alias/pppdir (mkdir может не сработать) * Запиши ./pppdir/ в ~alias/.qmail-ppp-default. Точно как написано. Не забудь ./ или / * Запиши :alias-ppp в /var/qmail/control/virtualdomains. * Для замены твоего локального имени именем у ISP добавь [email protected]:alias-isp в файл /var/qmail/control/virtualdomains (в отдельной строке). * Создай файл .qmail-isp-yourispname в домашнем каталоге alias (/var/qmail/alias). В этом файле одну строку: &[email protected] * Чтобы разрешить qmail изменять строку "From:" в исходящей почте на соответствующие [email protected], тебе нужно добавить три переменных среды. Куда - это несколько зависит от системы, а для моей стандартной установки RedHat я добавил их в файл .bash_profile из моего домашнего каталога: MAILHOST=isp.com MAILUSER=yourispname QMAILINJECT=f export MAILHOST MAILUSER QMAILINJECT * Чтобы qmail запускался во время загрузки добавь это в /etc/rc.d/rc.local (или в эквивалент на твоей системе): echo "Starting qmail ..." csh -cf '/var/qmail/rc &' * Прочитай раздел qmail файла INSTALL, озаглавленный "Переход с sendmail на qmail": Создай ссылку "sendmail" оболочки, как написано. Измени inetd.conf как написано и перезапусти inetd. Ссылка на оболочку sendmail должна быть сделана даже если ты не переходишь с sendmail. * Теперь ты способен полностью выполнить local-remote тест, описываемый ранее. Если ты пошлешь почту по своему адресу у ISP ([email protected]), то почта появится в твоем локальном mailbox, потому что выше он был записан как виртуальный домен. Если ты пошлешь что-нибудь еще за пределы локального домена, то оно появится в /var/qmail/alias/pppdir/new. Оно останется там, пока maildirsmtp не пошлет его дальше через MTA твоего ISP. Шаг 5. Отправка почты "наружу": * Если ppp соединение установлено, то можно определить IP адрес с помощью ifconfig (доступна на большинстве систем). С помощью этой информации, можно послать исходящую почту из командной строки как написано в man странице maildirsmtp. Я использую команду типа такой: #/usr/local/bin/serialmail/maildirsmtp ~alias/pppdir alias-ppp- mail.earthlink.net MyIP (замени mail.earthlink.net именем почтовой машины твоего isp и MyIP на твой текущий IP адрес. * Если эта команда работает, то это должно быть видно по тому что она выводит, например, message xxx accepted for delivery или что-то типа этого. Аналогично, видно и отказ. Я могу принять эту надежную работу из командной строки, однако, когда она выполняется из ip-up, то я должен использовать настоящее имя моей машины (зачем, я не понимаю). * Если это у тебя заработало, то все что осталось - это автоматизировать процесс. Шаг 6. Автоматизация с помощью ip-up: * ip-up это сценарий shell, который выполняется как только pppd установит связь. В моей системе он находится в /etc/ppp/, но может быть где угодно. В установке RedHat сценарий ip-up включает комментарии, в которых говорится что он не должен редактироваться, а вместо него должен использоваться ip-up.local. Создай этот файл в /etc/ppp/ и #chmod 755 /etc/ppp/ip-up.local чтобы сделать его запускаемым * Мой файл ip-up.local выглядит так: #!/bin/sh # dlv 4/19/98 # # эти строки добавлены, чтобы собирать любые выдаваемые сообщения в мой домашний каталог exec >/home/dlv/ip-up-log exec 2>&1 # date # файлы конфигурации qmail в QCD='/var/qmail/control' # # определить имя нашей машины; назначается динамически! # $4 - ip адрес, переданный pppd ME=`host $4|head -1|cut -d" " -f2` echo "$ME" > $QCD/HOSTNAME # # послать пачку писем на умную машину /usr/local/bin/serialmail/maildirsmtp ~alias/pppdir alias-ppp- mail.earthlink.net $ME # su dlv -c /usr/local/bin/fetchmail * При выполнении в домашнем каталоге создается файл ip-up-log для отладочных целей. Переменная ME используется чтобы знать "реальное" динамически выделяемое имя машины. Оно сохраняется в control/HOSTNAME. maildirsmtp запускается, используя ME в качестве имени машины. $4 - это параметр, переданный pppd, содержит новый динамически выделенный IP адрес. Подробнее смотри man страницу pppd. Этот сценарий адаптирован из сообщения списка рассылки qmail, написанное Rupert Mazzucco [email protected] * Последняя строка запускает fetchmail под моим бюджетом (а не root) для получения любой входящей почты. Страница руководства fetchmail очень понятно описывает как настроить fetchmail, но если тебе интересно, то вот мой ~/.fetchmailrc : poll mail.earthlink.net proto pop3 user yourispname with pass yourisppassword is yourlocalname here forcecr keep Обратите внимание, что опция "forcecr" необходима при работе с qmail. Замени mail.earthlink.net на имя почтовой машины твоего ISP. * Если ты хочешь чтобы машина проверяла почту автоматически, то добавь запись для cron, чтобы он устанавливал ppp соединение, ждал минуту и прерывал связь. Шаг 7. Выборочная трансляция и поддержка pop: В большинстве случаев в локальную сеть объединены более чем одна машина, и для всех них требуются почтовые услуги. Чтобы это правильно работало, тебе нужно так настроить qmail, чтобы позволить твоим локальным клиентам "транслировать" почту через твой сервер. Другими словами, если в сети есть компьютеры Macintosh или (Боже упаси) W95, то их почтовые клиенты (например, eurdora, netscape, ...) должны быть настроены так, чтобы они определяли твой qmail сервер как почтовый сервер (например, mymachine.mydomain.com). Это особенно важно если ты имеешь "звонок по требованию" связь с internet. Если клиенты будут посылать всю почту через ISP (например, mail.earthlink.net) связь будет устанавливаться для каждой исходящей почты - это не то что ты хочешь. Лучший вариант настройки "выборочной трансляции" описан Michael Samuel здесь (http://qmail-docs.surfdirect.com.au/docs/qmail-antirelay.html). Клиентским машинам также нужно получать свою почту с твоего сервера. Обычно, это выполняется с помощью POP сервера. Я использую qpopper (http://www.eudora.com/freeware) и доволен им. Еще можно использовать POP сервер встроенный в qmail - qmail-pop3d, но его сложнее настроить. Эпилог: Я надеюсь, что этот документ сэкономил тебе немного времени и нервов с почтой. Если ты находишь его полезным, напиши мне. Аналогично, если у тебя есть предложения по усовершенствованию. _________________________________________________________________ D. L. Vander Woude <[email protected]> Last modified: Fri Aug 20 00:15:58 EDT 1999 _________________________________________________________________ Перевод выполнил Юрий Козлов, очень рад замечаниям по адресу <[email protected]>. Формат оригинального html сохранен (http://www.i2k.net/~dougvw/mailqueue.html). 27 Авг Пят 19:53:58 MSK 1999 Сергиев-Посадская LUG http://spslug.sposad.ru

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру