The OpenNET Project / Index page

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

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"postfix, dovecot, mysql -> что за косяк?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"postfix, dovecot, mysql -> что за косяк?"  –1 +/
Сообщение от aviko on 15-Май-17, 13:11 
Здравствуйте.
Пытаюсь запилить почтовик в связке postfix, mysql и dovecot, но что-то идет не так (freebsd 10.3). Какие-то глобальные конфиги даже не пытался пихать, пока с простейшим не фурчит.

echo "test" | mail root
May 15 12:36:56 mail2 postfix/pickup[1285]: 6ECFB2199B58: uid=0 from=<root>
May 15 12:36:56 mail2 postfix/cleanup[1405]: 6ECFB2199B58: message-id=<20170515093656.6ECFB2199B58@mail2.tratata.local>
May 15 12:36:56 mail2 postfix/qmgr[1286]: 6ECFB2199B58: from=<root@tratata.local>, size=297, nrcpt=1 (queue active)
May 15 12:36:56 mail2 postfix/trivial-rewrite[1406]: warning: do not list domain tratata.local in BOTH mydestination and virtual_mailbox_domains
May 15 12:36:56 mail2 postfix/trivial-rewrite[1406]: warning: do not list domain tratata.local in BOTH mydestination and virtual_mailbox_domains
May 15 12:36:56 mail2 postfix/local[1407]: 6ECFB2199B58: to=<mailadmin@tratata.local>, orig_to=<root>, relay=local, delay=0.05, delays=0.02/0.01/0/0.01, dsn=5.1.1, status=bounced (unknown user: "mailadmin")
May 15 12:36:56 mail2 postfix/cleanup[1405]: 7767E2199B5A: message-id=<20170515093656.7767E2199B5A@mail2.tratata.local>
May 15 12:36:56 mail2 postfix/bounce[1408]: 6ECFB2199B58: sender non-delivery notification: 7767E2199B5A
May 15 12:36:56 mail2 postfix/qmgr[1286]: 7767E2199B5A: from=<>, size=2271, nrcpt=1 (queue active)
May 15 12:36:56 mail2 postfix/trivial-rewrite[1406]: warning: do not list domain tratata.local in BOTH mydestination and virtual_mailbox_domains
May 15 12:36:56 mail2 postfix/qmgr[1286]: 6ECFB2199B58: removed
May 15 12:36:56 mail2 postfix/local[1407]: 7767E2199B5A: to=<mailadmin@tratata.local>, orig_to=<root@tratata.local>, relay=local, delay=0.01, delays=0/0/0/0, dsn=5.1.1, status=bounced (unknown user: "mailadmin")
May 15 12:36:56 mail2 postfix/qmgr[1286]: 7767E2199B5A: removed


Почтовый /usr/local/etc/postfix/main.cf
compatibility_level = 2
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
myhostname = mail2.tratata.local
mydomain = tratata.local
myorigin = $mydomain
mydestination = mail2.tratata.local, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks_style = subnet
alias_maps = hash:/etc/mail/aliases
debug_peer_level = 2
debugger_command =
     PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
     ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix
inet_protocols = ipv4
meta_directory = /usr/local/libexec/postfix
shlib_directory = /usr/local/lib/postfix
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/virtual/domains.sql
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/virtual/users.sql
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1


cat /usr/local/etc/postfix/virtual/domains.sql
unix:file=/tmp/mysql.sock
user = reader
password = 12345678
dbname = mail
table = domains
select_field = domain
where_field = domain

cat /usr/local/etc/postfix/virtual/users.sql
unix:file=/tmp/mysql.sock
user = reader
password = 12345678
dbname = mail
table = users
select_field = concat ( '/mail', home )
where_field = email


сам файл для создания mysql простейший:
create database mail DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
use mail;
create table domains (
domain char(32) NOT NULL UNIQUE
);
insert into domains value ( 'tratata.local' );
create table users (
email VARCHAR(32) NOT NULL UNIQUE PRIMARY KEY,
home VARCHAR(16) NOT NULL UNIQUE,
password VARCHAR(64) NOT NULL
) ENGINE = InnoDB;
insert into users value ('mailadmin@tratata.local','mailadmin','12345');
insert into users value ('test@tratata.local','test','12345');
grant select on mail.* to 'reader'@'localhost';
grant select on mail.* to 'reader'@'127.0.0.1';
grant select on mail.* to 'reader'@'::1';
use mysql;
update user set password=password('12345678') where user='reader';
flush privileges;


ну и довекотовский /usr/local/etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=/tmp/mysql.sock dbname=mail user=reader password=12345678
default_pass_scheme = PLAIN
user_query = select concat ( '/MAIL/', home ) as home from users where email = '%u'
password_query = select password from users where email = '%u'

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от PavelR (??) on 15-Май-17, 14:01 
May 15 12:36:56 mail2 postfix/trivial-rewrite[1406]: warning: do not list domain tratata.local in BOTH mydestination and virtual_mailbox_domains


------------------

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "postfix, dovecot, mysql -> что за косяк?"  –1 +/
Сообщение от aviko on 15-Май-17, 14:15 
> May 15 12:36:56 mail2 postfix/trivial-rewrite[1406]: warning: do not list domain tratata.local
> in BOTH mydestination and virtual_mailbox_domains

Ну в общем-то я лог и выложил, чтобы это было видно. Только в чем проблема то, что не так то? о_О

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от ALex_hha (ok) on 15-Май-17, 17:12 
> Только в чем проблема то, что не так то? о_О

do not list domain tratata.local in BOTH mydestination and virtual_mailbox_domains

вам перевести со словарем или сами осилите гугл транслейт?


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "postfix, dovecot, mysql -> что за косяк?"  –1 +/
Сообщение от aviko on 15-Май-17, 20:54 
> вам перевести со словарем или сами осилите гугл транслейт?

доброжелательность на технических форумах всегда была интересной)))
спс, я уже разобрался, удалил $mydomain в mydestination, после чего данная ошибка ушла, но, к сожалению, это еще не все. :(
Вылез какой-то косяк с обращением dovecot. ((
При такой же попытке echo "test" | mail root теперь вылезает вот это:

May 15 20:00:55 mail2 postfix/pickup[2290]: CF2172199B58: uid=0 from=<root>
May 15 20:00:55 mail2 postfix/cleanup[2296]: CF2172199B58: message-id=<20170515170055.CF2172199B58@mail2.tratata.local>
May 15 20:00:55 mail2 postfix/qmgr[2291]: CF2172199B58: from=<root@tratata.local>, size=297, nrcpt=1 (queue active)
May 15 20:00:56 mail2 dovecot: auth-worker(2301): sql(root@tratata.local): unknown user
May 15 20:00:56 mail2 postfix/pipe[2298]: CF2172199B58: to=<root@tratata.local>, orig_to=<root>, relay=dovecot, delay=0.51, delays=0.02/0.03/0/0.46, dsn=5.1.1, status=bounced (user unknown)
May 15 20:00:56 mail2 postfix/cleanup[2296]: 557382199BA0: message-id=<20170515170056.557382199BA0@mail2.tratata.local>
May 15 20:00:56 mail2 postfix/bounce[2302]: CF2172199B58: sender non-delivery notification: 557382199BA0
May 15 20:00:56 mail2 postfix/qmgr[2291]: 557382199BA0: from=<>, size=2232, nrcpt=1 (queue active)
May 15 20:00:56 mail2 postfix/qmgr[2291]: CF2172199B58: removed
May 15 20:00:56 mail2 dovecot: auth-worker(2301): sql(root@tratata.local): unknown user
May 15 20:00:56 mail2 postfix/pipe[2298]: 557382199BA0: to=<root@tratata.local>, relay=dovecot, delay=0.02, delays=0/0/0/0.01, dsn=5.1.1, status=bounced (user unknown)
May 15 20:00:56 mail2 postfix/qmgr[2291]: 557382199BA0: removed


Вообще, в /etc/mail/aliases у меня добавлена строчка:
root:   mailadmin@tratata.local
после чего делался хэш postalias /etc/mail/aliases

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от aviko on 16-Май-17, 00:07 
При этом в /usr/local/etc/dovecot/conf.d/10-master.conf
# Internal user is used by unprivileged processes. It should be separate from
# login user, so that login processes can't disturb other processes.
#default_internal_user = dovecot
service auth-worker {
  # Auth worker process is run as root by default, so that it can access
  # /etc/shadow. If this isn't necessary, the user should be changed to
  # $default_internal_user.
  #user = root
}

при этом там же
service auth {
unix_listener auth-userdb {
mode = 0777
}
}
потому что там же написано
  # To give the caller full permissions to lookup all users, set the mode to
  # something else than 0666 and Dovecot lets the kernel enforce the
  # permissions (e.g. 0777 allows everyone full permissions).

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "postfix, dovecot, mysql -> что за косяк?"  +1 +/
Сообщение от PavelR (??) on 16-Май-17, 07:28 
>May 15 20:00:56 mail2 dovecot: auth-worker(2301): sql(root@tratata.local): unknown user
>May 15 20:00:56 mail2 postfix/pipe[2298]: CF2172199B58: to=<root@tratata.local>, orig_to=<root>, relay=dovecot, delay=0.51, delays=0.02/0.03/0/0.46, dsn=5.1.1, status=bounced (user unknown)

Что там насчет словаря говорили? Какие у вас сложности возникают с фразой "unknown user" - сложность перевода или сложность понимания к чему оно относится?

Попробуйте показать, что вы думали над проблемой, а не тупо копипастите логи из консоли.
Помогают думающим, а не копипастерам.

ИМХО.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от aviko on 16-Май-17, 09:25 
>Какие у вас сложности возникают с фразой "unknown user" - сложность перевода или сложность понимания к чему оно относится?

То, что неизвестный пользователь - это понятно и так, тут хорошо английский знать и не требуется. И то, что sql'ные запросы от dovecot, вероятно, выдают ему не то, что ему нужно - в принципе тоже, т.е. те запросы, которые в файле dovecot-sql.conf.ext нарисованы, потому что
select concat ( '/MAIL/', home ) as home from users where email = '%u'
непосредственно из mysql от пользователя reader выдает Empty set (0.00 sec), также как и
select password from users where email = '%u'
а как тогда правильно то написать?

> show tables from mail;

+----------------+
| Tables_in_mail |
+----------------+
| domains        |
| users          |
+----------------+

> select * from users;

+-------------------------+-----------+----------+
| email                   | home      | password |
+-------------------------+-----------+----------+
| mailadmin@tratata.local | mailadmin | 12345    |
| test@tratata.local      | test      | 12345    |
+-------------------------+-----------+----------+

> select * from domains;

+---------------+
| domain        |
+---------------+
| tratata.local |
+---------------+

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от aviko on 16-Май-17, 09:56 
> вероятно, выдают ему не то, что ему нужно - в принципе
> тоже, т.е. те запросы, которые в файле dovecot-sql.conf.ext нарисованы

хотя нет, туплю, забыл поменять %u на значение
выдается все нормально там
select concat ( '/MAIL/', home ) as home from users where email = 'mailadmin@tratata.local';
+-----------------+
| home            |
+-----------------+
| /MAIL/mailadmin |
+-----------------+

select password from users where email = 'mailadmin@tratata.local';
+----------+
| password |
+----------+
| 12345    |
+----------+

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от PavelR (??) on 16-Май-17, 11:15 
> выдается все нормально там

Ну вот и чудно, значит всё ок.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от aviko on 16-Май-17, 12:48 
> Ну вот и чудно, значит всё ок.

чудного мало, то, что улетает почта на mailadmin@tratata.local и появляется в /mail - это хорошо, но как сделать то так, чтобы почта на root'а прилетала виртуальному mailadmin@tratata.local ???

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от aviko on 16-Май-17, 13:08 
>> Ну вот и чудно, значит всё ок.
> чудного мало, то, что улетает почта на mailadmin@tratata.local и появляется в /mail
> - это хорошо, но как сделать то так, чтобы почта на
> root'а прилетала виртуальному mailadmin@tratata.local ???

т.е. чтобы всякая фигня в стандартном /var/mail не скапливалась

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от PavelR (??) on 16-Май-17, 13:29 
>> Ну вот и чудно, значит всё ок.
> чудного мало, то, что улетает почта на mailadmin@tratata.local и появляется в /mail
> - это хорошо, но как сделать то так, чтобы почта на
> root'а прилетала виртуальному mailadmin@tratata.local ???

Для этого нужно

либо:

- сконфигурировать virtual_alias_maps

либо:

Сконфигурировать для mydomain/myorigin отдельный домен (отдельный от виртуального), и тогда уже заработает локальный alias_maps.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

14. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от aviko on 16-Май-17, 14:42 
> Для этого нужно
> либо:
> - сконфигурировать virtual_alias_maps

аллиллуйя
первый конкретный ответ от вас в этой теме
спс, вроде полетела почта на root'а с приземлением на mailadmin@tratata.local

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от Bootmen (ok) on 16-Май-17, 15:01 
> Вообще, в /etc/mail/aliases у меня добавлена строчка:
> root:   mailadmin@tratata.local
> после чего делался хэш postalias /etc/mail/aliases

Конечно в базе мускула нет такого пользователя root.
Надо сделать еще алиас-таблицу:
/etc/postfix/virtual
#
root@tratata.local root
#
сделать postmap /etc/postfix/virtual
После добавить в main.cf :
#
# первым в список
virtual_alias_maps = hash:/etc/postfix/virtual,
#обязательно первым!
#
Как то так.
А вообще легче поставить готовую сборку типа iredmail
20 минут и у вас готовый работающий почтовик postfix+dovecot+msql(ldap) + вебморда
А там напильником до совершенства.
Один минус - ставить нужно начистую систему без постфикса мускула и довекота.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от aviko on 16-Май-17, 15:22 
>[оверквотинг удален]
> #
> # первым в список
> virtual_alias_maps = hash:/etc/postfix/virtual,
> #обязательно первым!
> #
> Как то так.
> А вообще легче поставить готовую сборку типа iredmail
> 20 минут и у вас готовый работающий почтовик postfix+dovecot+msql(ldap) + вебморда
> А там напильником до совершенства.
> Один минус - ставить нужно начистую систему без постфикса мускула и довекота.

спс

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от PavelR (??) on 16-Май-17, 19:30 
> аллиллуйя
> первый конкретный ответ от вас в этой теме

ну так первый конкретный вопрос - вот и первый конкретный ответ.

Ознакомьтесь с _https://habrahabr.ru/post/328530/

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

7. "postfix, dovecot, mysql -> что за косяк?"  +/
Сообщение от PavelR (??) on 16-Май-17, 07:40 

> Вообще, в /etc/mail/aliases у меня добавлена строчка:
> root:   mailadmin@tratata.local
> после чего делался хэш postalias /etc/mail/aliases

tratata.local теперь подчиняется настройкам "виртуальных доменов", а /etc/mail/aliases - настройка "локальных доменов" aka mydestination.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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