Exim с точки зрения ISPmanager

Материал из ISPWiki

Перейти к: навигация, поиск


Содержание

Общее об exim

Директория exim:

Linux - /etc/exim4

FreeBSD - /usr/local/etc/exim

Основные файлы:

configure (или exim4.conf.template на Linux) - файл конфигурации

aliases - список почтовых алиасов

domains - почтовые домены

passwd - почтовые ящики

Логи:

/var/log/exim/mainlog


Создание почтовых доменов через ISPmanager

Модуль «Exim с точки зрения ISPmanager»

Почтовый домен описывается в файле domains. В зависимости от значения поля "Действие по умолчанию" записи в файле будут отличаться. Для примера возьмем домен company.me.

- Если поле "Действие по умолчанию" имеет значение "Сообщение об ошибке", то запись в domans будет следующая:

company.me:company.me::no 

- "Игнорировать и удалить":

company.me:company.me:/dev/null:no 

- "Перенаправить на адрес" (перенаправляем на mary@me.ru):

company.me:company.me:mary@me.ru:no 

В файле domainips указывается, с какого ip адреса будет осуществляться отправка писем.

company.me:31.120.223.20; 


Создание почтовых ящиков через ISPmanager

Модуль «Exim с точки зрения ISPmanager»

Информация о почтовых ящиках находится в файле passwd

Для примера выбран ящик - mary@company.me В passwd получаем следующую запись:

mary@company.me:1000:1004:0:/home/fly/data/email/company.me/mary/mail:no:I5hyC6SA 

где: 1000 - UID пользователя, которому принадлежит ящик

1004 - GID пользователя, которому принадлежит ящик

0 - размер почтового ящика (0 - неограниченно).

/home/fly/data/email/company.me/mary/mail - путь до домашней директории ящика

I5hyC6SA - пароль к ящику

Пароль для ящика может храниться в файле passwd или может храниться в базе sasdb. Это зависит от того, как настроен exim. Чтобы узнать. что использует exim - базу sasldb или passwd файл, смотрим файл конфигурации exim, ищем секцию begin authenticators

login: 
driver = plaintext 
public_name = LOGIN 
server_prompts = "Username:: : Password::" 
server_condition = ${if and{{!eq{$2}{}} {eq {$2} {${extract {6} {:} {${lookup{$1}lsearch{/usr/local/etc/exim/passwd}}}}}}} {yes} {no} } 
server_set_id = $1 

В данном примере видно, что пароли хранятся в passwd файле.

В файле aliases указываются псевдонимы для почтового ящика и адреса для пересылки сообщений. Для примера установим для ящика mary@company.me псевдоним - garry, в файле aliases будет следующая запись:

garry@company.me:mary@company.me:fwd 

Добавим пересылку сообщений на адрес mail@gmail.com, в aliases появится запись:

mary@company.me:mary@company.me,mail@gmail.com:user 

Если в интерфейсе панели установим галку "Не сохранять в ящик", то запись будет следующей:

mary@company.me:mail@gmail.com:user 


При создании пользователя в ISPmanager в файле aliases создается запись:

username@hostname::group 

Это делается для того, чтобы пользователь мог отправлять письма из консоли и скриптов. Например, если из консоли выполнить команду mail <почтовый ящик>, то письмо будет отправлено с вышеуказанного ящика. Без ящика письмо не пройдет проверку отправителя и не будет отправлено.

Автоответчик

При создании автоответчика создается файл /<директория ящика>/vacation/message.txt с содержимым ответа.

Если автоответчик не работает, в первую очередь следует смотреть логи почтового сервера. Часто причиной некорректной работы автоответчика является неверные права на message.txt

Формат хранения электронной почты maildir и mbox

  • maildir представляет из себя структуру каталогов для хранения входящей почты. Каталог в формате Maildir состоит из трех подкаталогов: tmp, new и cur. Каждое сообщение хранится в отдельном файле с уникальным именем.

Каждый файл в каталоге new представляет собой новое доставленное сообщение. Время модификации файла соответствует времени доставки сообщения. Каталог tmp используется для обеспечения гарантированной доставки сообщений. Сначала сообщение записывается в файл в директории tmp, затем перемещается в директорию new. В каталоге cur находятся прочитанные письма.

  • mbox хранит все сообщения в одном файле.

Как узнать какой формат использует ваш почтовый сервер?

Ищем в конфигурационном файле exim секцию local_delivery

Строка file = ${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/usr/local/etc/exim/passwd}}}}/mbox говорит о том, что используется mbox

Если:

driver = appendfile 
.ifdef MAILDIR_ENABLE 
maildir_format = true 
maildir_use_size_file = true 
create_directory = true 
directory_mode = 700 
directory = ${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/usr/local/etc/exim/passwd}}}}/.maildir 

то используется формат maildir.

Если на сервере используется procmail, и есть файл procmailrc в директории ящика, то секция local_delivery не отрабатывает. В данном случае procmail берет на себя доставку сообщения до ящика, поэтому смотрим в /usr/local/etc/procmailrc (или /etc/procmailrc на Linux), чтобы определить куда кладется письмо.

Как учитывается квота почтового ящика

Если используется maildir, то следит за тем, чтобы размер ящика не превысил допустимой нормы, процесс eximquota

Если в качестве LDA установлен procmail, то eximquota смотрит на размер директории .maildir.

Если в качестве LDA установлен maildrop, то eximquota использует файл maildirsize. При получении письма maildrop обновляет файл maildirsize, в который записывается ограничение на ящик и сколько места уже занято.

Если используется mbox, то квоты учитывает сам exim.

Как перенести почтовый домен от одного пользователя к другому

Проверено на Debian 6, exim4-4.72-6+squeeze3

В примере переносим почтовый домен company.ru (ящик mary@company.ru) от пользователя mary к пользователю volt

Смотрим домашнюю директорию почтового домена:

# cat /etc/exim4/passwd
mary@company.ru:514:512:0:/var/www/mary/data/email/company.ru/mary:no:

Перемещаем ее в домашнюю директорию нового пользователя

mv /var/www/mary/data/email/company.ru/ /var/www/volt/data/email/company.ru/

Меняем владельца

chown -R volt:volt /var/www/volt/data/email

В /etc/exim4/passwd меняем GID и UID, указываем данные нового пользователя, указываем новую домашнюю директорию.

В конфигурационном файле dovecot (/etc/dovecot/dovecot.passwd) меняем директорию почтового ящика и UID, GID.

В файле конфигурации ISPmanager (/usr/local/ispmgr/etc/ispmgr.conf) в строке Domain company.ru 514 указываем вместо 514 UID нового пользователя.

Перезапускаем ISPmanager

killall ispmgr

Перезапускаем exim

/etc/init.d/exim4 restart

Перезапускаем dovecot

/etc/init.d/dovecot restart

FAQ

Q: Как изменить формат хранения писем с mbox на maildir

А: В конфигурационном файле exim заменить стороку

file = ${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/usr/local/etc/exim/passwd}}}}/mbox

на

directory = ${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/usr/local/etc/exim/passwd}}}}/.maildir 

также в секцию local_delivery нужно дописать

maildir_format = true 
maildir_use_size_file = true 
create_directory = true 
directory_mode = 700 

Если используется procmail, то меняем mbox на maildir в /usr/local/etc/procmailrc (или /etc/procmailrc на Linux)

Также нужно изменить mbox на maildir в dovecot.passwd

Q: Откуда ISPmanager берет список почтовых ящиков?

A: Панель берет список ящиков из /usr/local/etc/dovecot.passwd (/etc/dovecot.passwd на Linux)

Q: eximquota часто "падает", что делать?

А: В конфигурационном файле exim меняем {exists{/usr/local/ispmgr/var/eximquota.sock}}\ на {exists{/usr/local/ispmgr/var/eximquota.pid}}\ , чтобы exim проверял процесс по pid, а не по сокету.

Q: На файл message.txt (файл автоответчика) выставляются неверные права. Откуда панель берет информацию какие права ставить на message.txt ?

A: Команда /usr/local/ispmgr/sbin/mgrctl pathlist | grep "exim-vaclist" покажет путь до файла vaclist, с этого файла копируются права и владелец.


Q: При достижении лимита дискового пространства письма стали складываться в mbox, вместо maildir

A: Проверить, запущена ли eximquota. Запустить командой

/usr/local/ispmgr/sbin/eximquota

Проверить, корректно ли перезапускается сам exim. Возможно, /var/log/paniclog не пустой .

Была ли эта информация полезной? Да | Нет
Личные инструменты