The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
mysql и почтовые алиасы, !*! velik, 30-Май-17, 00:19  [смотреть все]
Здравствуйте.
В общем, наверное, глупый вопрос, но в mysql я совсем не силен и пониманию, как реализовать то, что нужно. Есть почтовый сервер. Пользователи виртуальные, таблица в mysql имеет простейший вид:

create table users (
email VARCHAR(64) NOT NULL UNIQUE PRIMARY KEY,
homedir VARCHAR(32) NOT NULL UNIQUE,
password VARCHAR(128) NOT NULL,
fullname VARCHAR(64) DEFAULT NULL
) ENGINE = InnoDB;

Нужно как-то сформировать таблицу алиасов, чтобы для одного email адреса было несколько адресатов. Другими словами, есть почтовый адрес test@example.com, для которого в реальности не должно быть почтового ящика (т.е. в таблице users такого test@example.com не должно быть), а нужно, чтобы письмо, направленное на этот адрес, уходило нескольким реальным адресатам, т.е. user1@example.com, user2@example.com, user3@example.com и т.п., которые существуют в таблице users. Хотелось бы, при этом, чтобы нельзя было создать алиас для несуществующих почтовых адресов, т.е. если, например, user5@example.com отсутствует в таблице users, то и алиас на него сделать не получится.

Пробовал создавать такую же простую таблицу, типа:

create table aliases (
alias VARCHAR(64) NOT NULL KEY,
email VARCHAR(64),
FOREIGN KEY (email) REFERENCES users(email) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB;

но в этом случае у меня получается добавить для одного алиаса только один реальный адресат, т.е. типа test@example.com -> user1@example.com по принципу:

insert into aliases value ( 'test@exmaple.com', 'user1@exmaple.com' );

и для одного адресата оно работает и в принципе почта бегает, а как сделать так, чтобы письмо уходило на несколько разных адресов то? Т.е. чтобы в колонке email таблицы aliases был не один адрес, а несколько?

  • mysql и почтовые алиасы, !*! Аноним, 02:45 , 30-Май-17 (1)
    если по простому:
    email в таблице алиасов делаешь TEXT без привязки к внешнему ключу.
    и _внезапно_ в это поле можно вбить список реальных мыл через запятую, постфикс хавает,
    но так как ты не указываешь ни какой MTA у тебя стоит ни какие запросы используешь, ни как оные запросы привязаны к конфигу оного MTA остаётся только послать учиться задавать вопросы...


    • mysql и почтовые алиасы, !*! velik, 09:23 , 30-Май-17 (2)
      > если по простому:
      > email в таблице алиасов делаешь TEXT без привязки к внешнему ключу.
      > и _внезапно_ в это поле можно вбить список реальных мыл через запятую,
      > постфикс хавает

      Без привязки к внешнему ключу имеется ввиду без строчки FOREIGN KEY (email) REFERENCES users(email) ON DELETE CASCADE ON UPDATE CASCADE правильно я понимаю?
      т.е. по типу:
      create table aliases (
      alias VARCHAR(32) NOT NULL KEY,
      email TEXT
      ) ENGINE = InnoDB;
      insert into aliases value ( 'test@example.com', 'user1@example.com,user2@example.com' );
      в принципе, именно такие команды сам mysql съедает без ошибок (проверить как в таком случае бегает почта позже только смогу), с командой foreign key... вылезает ошибка:  BLOB/TEXT column 'email' used in key specification without a key length
      Другими словами, получается, что в таком формате нет возможности реализовать функционал, при котором запрещена возможность создать алиас при несуществующем реальном ящике в таблице users и нужно очень внимательно самому за эти следить?

      > но так как ты не указываешь ни какой MTA у тебя стоит
      > ни какие запросы используешь, ни как оные запросы привязаны к конфигу
      > оного MTA остаётся только послать учиться задавать вопросы...

      MTA - Действительно postfix, а запрос через virtual_alias_maps = mysql:...файлалиасов.sql планируется, ну и сам файлалиасов что-то в стиле:
      unix:file=/tmp/mysql.sock
      user = sqlviewer
      password = <password>
      dbname = maildb
      table = aliases
      select_field = email
      where_field = alias




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

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