Возможно вы искали: 'Impact Asteroid Combat'

May 15 2025 18:29:50
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Почтовая система на базе exim для домашней машины (exim mail mutt fetchmail procmail)

Почтовая система на базе exim для домашней машины (exim mail mutt fetchmail procmail)

Ключевые слова: exim, mail, mutt, fetchmail, procmail, (найти похожие документы)

From: Илья Воронин <http://www.ivoronin.pp.ru/>
Newsgroups:
Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC)
Subject: Почтовая система на базе exim для домашней машины

Оригинал: http://www.ivoronin.pp.ru/

Почтовая система для домашней машины


0. Предисловие.

В настоящее время в web можно найти множество статей о том как
настроить почтовый сервер для небольшой организации или огромной
компании, как реализовать аутентификацию с помощью LDAP или MySQL, как
настроить SSL и DNSBL или даже как хранить все письма в SQL базе, но
нет практически ни одной о том как настроить почтовую систему для
работы на обыкновенной домашней машине. Автор не несёт никакой
отвественности за ваши испорченные нервы, потерянную почту и всё
остальное что может случиться Smiling.


0.1 Некоторые термины, сокращения и соглашения

Имена хостов, пользователей, имена файлов, почтовые адреса и некоторые
термины выделены в тексте вот так.

В статье предполагается что вы работаете на машине с UNIX-like OS с
правами некоего пользователя, и этот пользователь не root (хотя права
root нам тоже понадобятся). Назовём его jdoe. Имя машины -
jdoe.local.provider.net. Ваш провайдер предоставляет вам smtp сервер -
smtp.provider.net, через который вы можете свободно, без какой-либо
аутентификации (исключая аутентификацию по вашему адресу) отправлять
почту и pop3 сервер - pop3.provider.net, где у вас есть почтовый ящик
jdoe@provider.net. Также у вас есть почтовый ящик на одном из
бесплатных серверов - jdoe@zzzmail.com (pop3 сервер -
pop3.zzzmail.com).

Программы, которые требуется запускать с правами суперпользователя в
примерах имеют в качестве приглашения интерпретатора знак #, программы
запускаемые от имени пользователя (jdoe) - знак $.


1. Что нам понадобится.

Список прграмм, которые нам понадобятся:

* Exim, http://www.exim.org/, рассматриваемая в статье версия - 4.31


* Fetchmail, http://catb.org/~esr/fetchmail/, 6.2.4


* Procmail, http://www.procmail.org/, 3.22


* Bmf, http://sourceforge.net/projects/bmf/, 0.9.4


* Mutt, http://www.mutt.org/, 1.4.1i


* Ваш любимый текстовый редактор


То что здесь указаны URL'ы домашних страниц программ, не значит что
надо качать оттуда исходники, собирать их самому и ставить как попало
в систему. Наверняка эти программы есть в виде портов/пакетов/etc для
вашей системы, проверьте Eye-wink . Если ваши версии немного
отличаются от рассматриваемых - ничего страшного, думаю все будет
работать. (за исключением exim - формат конфигурационного файла версий
3.X и более ранних совершенно несовместим с форматом exim 4.X)


2. Настройка.


2.1 Exim.

Итак приступим. (процесс сборки программ не расматривается). Начнём мы
с exim. Exim - это Mail Transfer Agent, т.е. как понятно из названия -
программа, занимающаяся передачей почты. Конфигурационный файл
программы обычно находится в /etc/exim/exim.conf или
/usr/local/etc/exim/exim.conf.

Работа exim основана на логических элементах - драйверах: роутерах и
транспортах. Роутер производит операции над адресом и определяет как
дальше пойдёт процесс доставки сообщения - оно будет передано
транспорту или его адрес будет переписан (например на основе файла
aliases). Также роутер может прервать процесс доставки (например если
указанный в адресе назначения пользователь не существует на сервере).
Транспорты передают копию сообщения из почтовой очереди exim в
указанное место назначения (файл, pipe, удаленный хост, etc).

Приблизительный файл конфигурации (то что начинается с # - мои
коментарии, неплохо бы их читать):

# здесь вместо 'jdoe' укажите пользователя, под которым вы обычно работаете, это даст ему
# возможность управлять exim'ом без прав root.
trusted_users = jdoe
queue_list_requires_admin = false

#
# Роутеры.
# порядок следования роутеров в файле конфигурации очень важен.
#
begin routers

#
# если домен адреса назначения в письме не является локальным ( 'domains = !@', символ '@'
# означает 'имя локальной машины'.), для всех доменов отправить его через сервер указанный
# в переменной smarthost, при помощи транспорта remote_smtp (см. дальше).
#
smarthost:
driver = manualroute
domains = !@
transport = remote_smtp
route_list = * smtp.provider.net

#
# если адрес назначения в письме встречается в первом столбце в файле /etc/aliases
# изменить его на адрес находящийся во втором столбце и начать прохождение по списку роутеров снова.
# Если файл alias'ов в вашей системе находится в другом месте ( например /etc/mail/aliases ),
# исправьте здесь его имя.
#
aliases:
driver = redirect
data = ${lookup{$local_part}lsearch{/etc/aliases}}
file_transport = address_file
pipe_transport = address_pipe

#
# если в домашнем каталоге пользователя существует файл .forward, продолжить обработку письма
# в соотвествии с инструкциями в этом файле (man 5 forward).
#
dotforward:
driver = redirect
check_local_user = true
file = $home/.forward
file_transport = address_file
pipe_transport = address_pipe

#
# Ну и наконец, если письмо достигло этого роутера, и пользователь, которому предназначено письмо
# сущестует в системе (check_local_user = true) - передать его транспорту local_delivery.
# если пользователь не существует - будет сформировано сообщение об ошибке доставки письма.
#
local_user:
driver = accept
check_local_user = true
transport = local_delivery

#
# Транспорты.
#
begin transports

#
# Доставка локальному пользователю - берем письмо, и просто добавляем его к файлу
# /var/mail/$local_part.
#
local_delivery:
driver = appendfile
# если почтовый каталог в вашей системе находится не в /var/mail, а скажем в /var/spool/mail,
# исправьте эту строку.
file = /var/mail/$local_part

#
# в файле alias'ов или в .forward файле можно определить альтернативный почтовый ящик.
# например в aliases:
#
# bgates: /mail/bgates
#
# в остальном работает также как транспорт local_delivery.
#
address_file:
driver = appendfile

#
# передать письмо указанной программе на stdin. опять же на примере aliases:
#
# bgates: |/usr/bin/bmf -S
#
address_pipe:
driver = pipe
return_output

#
# отправить письмо через указанный хост по smtp.
#
remote_smtp:
driver = smtp

#
# Переписывание адресов.
# Имя вашей машины - jdoe.local.provider.net, и все письма исходящие с неё
# будут иметь адрес источника user@jdoe.local.provider.net, что совсем не хорошо, поэтому
# мы будем переписывать адрес источника в них.
# Здесь:
# jdoe@jdoe.local.provider.net - оригинальный адрес источника
# jdoe@provider.net - на этот адрес в письмах будет заменяться jdoe@jdoe.local.provider.net.
# Ffrs - некоторая 'магическая' комбинация флагов, особо любопытные могут прочитать подробнее
# в документации на exim, в разделе 'ADDRESS REWRITING'.
#
begin rewrite
jdoe@jdoe.local.provider.net jdoe@provider.net Ffrs

#
# Если письмо не удалось доставить сразу повторять попыпытки в первые сутки - каждые час,
# затем ежедневно в течении недели.
# После истечения этого срока будет сформировано письмо на исходящий адрес сообщения
# с объяснением причин невозможности доставки.
#
begin retry
* * F,1d,1h; F,7d,1d


Минимальный файл alias'ов должен состоять из одной строчки:

root: jdoe


таким образом вся почта, предназначенная пользователю root (сообщения
от различных демонов, средств наблюдения за системой, etc) будет
пересылаться вашему пользователю.

Теперь необходимо убедиться что exim в вашей системе - основной MTA,
для этого выполним команду:

$ /usr/sbin/sendmail -bV


если её вывод совсем не похож на

Exim version 4.31 #3 built 05-Apr-2004 02:01:05
Copyright (c) University of Cambridge 2004
[...]


необходимо настроить вашу ОС таким образом чтобы exim был основным
MTA. В некоторых системах нужно отредактировать /etc/mailer.conf или
/etc/mail/mailer.conf, в Debian GNU/Linux выполнить команду:

update-alternatives --config mail-transport-agent


и выбрать в списке exim. Одним словом обратитесь к документации на
вашу ОС Eye-wink

Для управления очередью сообщений необходимо периодически запускать
exim с ключём -q, для этого добавим в файл /etc/crontab (или другой
подобный файл в вашей системе, к примеру /var/cron/tabs/root) строку:

@hourly /usr/sbin/sendmail -q


и выполним команду:

# crontab /etc/crontab


Всё. с настройкой exim покончено, теперь вы можете попробовать послать
письмо самому себе с помощью программы mail,

$ mail jdoe
Subject: test!
test!
^D
$ mail
Mail version 8.1.2 01/15/2001. Type ? for help.
"/var/mail/jdoe": 1 message 1 unread
>N 1 jdoe@jdoe.local.p Mon Jan 01 00:01 14/450 test!
& 1
Message: 1
From jdoe@jdoe.local.provider.net Mon Jan 01 00:01:00 2235
Envelope-to: jdoe@jdoe.local.provider.net
To: jdoe@jdoe.local.provider.net
Subject: test!
From: jdoe@jdoe.local.provider.net
Date: Mon Jan 01 00:01:00 2235

test!

&


PS: если на этом этапе возникают проблемы а exim пишет в логи о том
что невозможно создать lockfile, выполните команду (если почтовый
каталог в вашей системе не /var/mail - замените этот путь на
правильный):

# chmod 1777 /var/mail


2.2 Mutt

Mutt это очень мощный почтовый клиент (особенно если ознакомиться с
документацией Eye-wink ). Для начала запишем следующие строки в
~/.muttrc:

# Кодировка для ввода/вывода текста
set charset="koi8-r"
# Кодировки для исходящих сообщений
set send_charset="us-ascii:iso-8859-1:koi8-r:utf-8"


Запустим mutt:

$ mutt


вы должны увидеть содержимое своего почтового ящика - письмо из пункта
2.1


2.3 Fetchmail.

Теперь надо как-нибудь забирать почту с POP серверов. Мы будем делать
это с помощью fetchmail. Fetchmail получает письма с POP (или IMAP)
сервера и передаёт их локальному MTA (т.е. exim). Конфигурационный
файл программы - ~/.fetchmailrc довольно прост, вот его пример:

# по умолчанию fetchmail ожидает что наш MTA слушает порт 127.0.0.1:25, но
# поскольку это не так - мы указываем другой способ доставки почты.
defaults mda "/usr/sbin/sendmail -t -f %F %T"
# опрос сервера:
# poll <адрес сервера> proto pop3 user <имя пользователя> pass <пароль>
poll pop3.zzzmail.com proto pop3 user "jdoe" pass "mYsEcReT"
poll pop3.provider.net proto pop3 user "jdoe" pass "AnOtHer"


теперь просто запускаем:

$ fetchmail


и почта попадает в наш почтовый ящик. (проверьте с помощью mutt).

(PS: для тех кто хочет управлять почтой прямо на сервере, просматривая
заголовки писем я бы рекомендовал Prepop,
http://freshmeat.net/projects/prepop/)


2.3.1 Запуск fetchmail демоном.

Да, мне тоже лень запускать fetchmail вручную Smiling . Поэтому можно
заставить работать его демоном, проверяя наличие почты на серверах
через заданный промежуток времени. Изменим немного ~/.fetchmailrc

# проверять почту каждые полчаса
set daemon 1800
set logfile /home/jdoe/.fetchmail/fetchmail.log
defaults mda "/usr/sbin/sendmail -t -f %F %T"
poll pop3.zzzmail.com proto pop3 user "jdoe" pass "mYsEcReT"
poll pop3.provider.net proto pop3 user "jdoe" pass "AnOtHer"


создаём директрию ~/.fetchmail, а в ней файл fetchmail.log

$ mkdir ~/.fetchmail
$ touch ~/.fetchmail/fetchmail.log


туда будет записываться протокол работы fetchmail.

Осталось только как-нибудь заставить fetchmail автоматически
запускаться при старте системы. Для этого воспользуемся услугами cron:
создадим файл ~/.fetchmail/fetchmail.cron:

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
@reboot fetchmail


выполним команды:

$ crontab ~/.fetchmail/fetchmail.cron
$ fetchmail


2.4 Тест

Напишем самому себе письмо на один из наших адресов (скажем на
jdoe@provider.net) и отправим его, если с соединением всё в
порядке то через полчаса (или что вы там указали в ~/.fetchmailrc) мы
получим его обратно. Обратите внимание на адрес отправителя - если у
вас всё правильно работает - он будет тем что вы указали в секции
rewriting в файле конфигурации exim.


3. Для тех кому этого мало.

В данный момент наша почтовая система настроена и прекрасно
функционирует. Но как же такие веши как сортировка почты и фильтрация
спама? Eye-wink


3.1 Сортировка писем.

Для сортировки почты вы воспользуемся procmail. Для начала создадим
файл ~/.forward, в который запишем всего одну строку:

"|/usr/bin/procmail"


(Если у вас procmail находится в другом месте - исправьте эту строку
на правильную).

Создадим директорию ~/.mail - теперь вся почта у нас будет храниться
там.

$ mkdir ~/.mail


Допустим вы подписаны на несколько списков рассылки, ну скажем
users@lists.youros.org и security@lists.youros.org, а также
часто получаете письма с места работы (домен yourcompany.com) и не
хотели бы их смешивать в одном почтовом ящике. Вот сценарий procmail,
который реализует это:

# Сюда будет помещаться почта, не подходящая ни под одно из
# следующих правил.
DEFAULT=$HOME/.mail/inbox
# Файл, содержащий протокол работы procmail.
LOGFILE=$HOME/.procmail/procmail.log

:0:

* ^X-Mailing-List: <users@lists.youros.org.>
$HOME/.mail/youros-users

:0:

* ^X-Mailing-List: <security@lists.youros.org.>
$HOME/.mail/youros-security

:0:

* ^From:.*<.+@yourcompany.com>
$HOME/.mail/yourcompany


Также отредактируем конфиг mutt (файл ~/.muttrc):

# не имеет к сортировке почты никакого отношения, просто позволит вам отвечать
# в списки рассылки.
lists users@lists.youros.org
lists security@lists.youros.org

# Директория с почтовыми ящиками (в последствии можно обращаться к этому значению,
# записывая знак '=')
set folder="~/.mail"
# проверять наличие почты в этих ящиках и сообщать об этом пользователю
mailboxes =inbox =youros-users =youros-security =yourcompany
# сюда складывать прочитанную почту
set mbox="=readed"
# сюда - посланную
set record="=sent"
# сюда - черновики писем
set postponed="=postponed"
# начинать работу с отображения этого ящика
set spoolfile="=inbox"

set charset="koi8-r"
set send_charset="us-ascii:iso-8859-1:koi8-r:utf-8"


Запускаем mutt - видим содержимое ящика ~/.mail/inbox, нажимаем 'c' а
потом '?' - получаем список почтовых ящиков.


3.2 Фильтрация спама

Cэкономьте на профессиональных грyзoпepевoзках, APEНДА КВAРTИР в
МOCKВE, Лучшие туры для отдыха в России и Зарубежом. Брр! Письма
подобного содержания валятся сотнями и казалось бы нет способа
избавить себя от чтения этого мусора. Для выделения таких писем и
помещения их в отдельный почтовый ящик мы будем использовать bmf (или
другую подобную программу). Работа bmf основана на ведении статистики
'хороших' и 'плохих' слов и анализе писем на наличие этих слов.

Немного модифицируем ~/.procmailrc:

# Сюда будет помещаться почта, не подходящая ни под одно из
# следующих правил.
DEFAULT=$HOME/.mail/inbox
# Файл, содержащий протокол работы procmail.
LOGFILE=$HOME/.procmail/procmail.log
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

:0fw
| bmf -p

:0:

* ^X-Spam-Status: Yes
$HOME/.mail/spam

:0:

* ^X-Mailing-List:
$HOME/.mail/youros-users

:0:

* ^X-Mailing-List:
$HOME/.mail/youros-security

:0:

* ^From: .* <.+@yourcompany.com>
$HOME/.mail/yourcompany


Таким образом весь спам будет помещаться в почтовый ящик ~/.mail/spam

Осталось только создать базы 'плохих' и 'хороших' слов для bmf.
Отредактируем файл ~/.muttrc - добавим к нему следующие строки:

# bayesian mail filter
macro index <f9> "|bmf -Sn" "SPAM"
macro index <f10> "|bmf -Nn" "NOSPAM"
macro pager <f9> "|bmf -Sn" "SPAM"
macro pager <f10> "|bmf -Nn" "NOSPAM"


Как только встречается очередное подобное письмо - просто нажимаем F9,
и спама становится чуточку меньше Smiling

(PS: неплохо конечно время от времени проверять почтовый ящик spam -
ложные срабатывания вполне возможны (у меня не было ни одного)).


4. Заключение.

Я постарался как можно подробнее и вместе с тем не вдаваясь в
технические подробности описать настройку почтовой системы для
домашней машины (хотя такую систему вполне можно использовать и для
маленького сервера с небольшим количеством пользователей, для этого
достаточно установить любой pop3 сервер, к примеру popa3d,
http://www.openwall.com/popa3d/ и доработав конфигурацию exim
(советую заглянуть в его конфиг по умолчанию)), получилось или нет -
не знаю Eye-wink . Если вы нашли в статье какую-либо неточность или
ошибку - сообщайте.
1272 Прочтений •  [Почтовая система на базе exim для домашней машины (exim mail mutt fetchmail procmail)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Почтовая система для домашней машин... Ukraine Vova 08.05.2012
• Почтовая система на базе exim для д... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка