Назад | Перейти на главную страницу

Как я могу переслать почту, сохранив копию с помощью postfix и mysql?

Я переношу электронную почту со старых установок Plesk на специально созданный сервер Ubuntu с iRedMail (postfix / amavisd / dovecot / и т. Д.).

Я использую postfixadmin для управления всеми доменами и серверной частью mysql. Я заметил, что если я хочу «создать псевдоним» или создать переадресацию, я не могу использовать существующий почтовый ящик, поэтому я не могу скопировать функцию «перенаправление с сохраненной копией» в стиле Plesk.

В настоящее время я устанавливаю удаленные псевдонимы через базу данных и использую:

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

Если есть способ по-прежнему использовать мою базу данных, это было бы идеально - даже если мне придется добавить несколько столбцов и изменить запрос.

Спасибо!

Если у вас есть виртуальная учетная запись, определенная в virtual_mailbox_maps, и вы хотите перенаправить И сохранить сообщение, вам необходимо вставить 2 псевдонима в карту псевдонимов:

account@example.com redirect@anotherdomain.com
account@example.com account@example.com

И этот синтаксис перенаправит любую почту на account@example.com на redirect@anotherdomain.com И проверит, есть ли у вас user account@example.com в virtual_mailbox_maps, и если да - сохраните его.

Обновить Или вы даже можете использовать (@ Тим Хегель Спасибо за комментарий)

account@example.com account@example.com redirect@anotherdomain.com 

Я понял это. В основном мне нужно изменить таблицу mysql, которая сохраняет псевдонимы, чтобы она поддерживала несколько псевдонимов для каждого адреса, что позволяет настроить доставку как для локального домена, так и для удаленной электронной почты.

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

Я использовал postfixadmin для управления учетными записями, но он не поддерживает такое использование, поэтому мне пришлось изменить исходный код, чтобы он правильно отображал, редактировал и удалял псевдонимы.

Главный урок здесь заключается в том, что при использовании mysql один ключ можно сопоставить с несколькими результатами, установив новый первичный ключ, то есть «id», но сохраняя при этом ту же логику постфиксных запросов. Возвращаемые множественные результаты аналогичны множественным результатам в файлах dbm / bd по умолчанию, за исключением того, что вы должны создать новую запись с тем же ключом, а не с одним ключом с каким-либо результатом с разделителями.

HTH другие!

Это должно работать с любыми картами в mysql.

У вас есть локальные учетные записи для всех пользователей?

Я использовал .вперед файл с чем-то вроде:

user@new-mail-server.example.com, \user

который пересылает копию и сохраняет копию в локальной катушке.

Этот вопрос довольно старый, но я просто столкнулся с той же ситуацией с той же средой (postfix; dovecot; mysql) и реализовал следующий подход:

Я создал новую таблицу db, в которой хранятся мои виртуальные конфигурации пересылки:

CREATE TABLE `virtual_forwards` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `source` varchar(100) NOT NULL,
  `destination` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Затем я создал новый файл виртуальной прямой карты /etc/postfix/mysql-virtual-forward-maps.cf который запрашивает ранее созданный virtual_forwards table AND всегда возвращает объединенный источник, а также адрес назначения (почта будет отправлена ​​на псевдоним AND):

user = mailuser
password = <PASS>
hosts = 127.0.0.1
dbname = <DB_NAME>
query = SELECT CONCAT(source, ',', destination) FROM virtual_forwards WHERE source='%s'

И, наконец, я добавил новый файл карты в свой /etc/postfix/main.cf так как virtual_alias_maps:

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-virtual-forward-maps.cf

Перезагрузите ваш постфиксный сервер, и все должно работать как положено. Я предпочитаю этот подход против добавления списка, разделенного запятыми, в virtual_aliases table, потому что мне это кажется неправильным. Но это может быть моя личная проблема :)

Я знаю, что я не могу добавить несколько переадресаций на основе одного и того же адреса источника (например, test @ tworabbits => test1 @ tworabbits, test2 @ tworabbits), но можно легко разделить virtual_forwards стол в virtual_forward_sources И virtual_forward_destinations чтобы удовлетворить это требование.

Надеюсь, это кому-нибудь поможет, когда пройдет еще пять лет :) Ура!

Очень простое решение - включить исходный адрес в список, разделенный запятыми, в столбце назначения. Например.:

insert into virtual_aliases (domain_id, source, destination) 
values (1, 'account1@domain1.com', 'account1@domain1.com,account2@domain2.com');

Это подходит для меня.

Вероятно, более кошерно отправлять из postfix 'main.cf:

Скажем, в main.cf:

### let's archive some incoming/outgoing mail:
recipient_bcc_maps = hash:/etc/postfix/recipient-bcc
sender_bcc_maps    = hash:/etc/postfix/sender-bcc

и в соответствующих файлах (получатель-скрытая копия и отправитель-скрытая копия), например:

@sender.domain a.local@address

Не забудьте (пере) построить базы данных после редактирования файлов:

postmap hash:recipient-bcc
postmap hash:sender-bcc

Ответы выше устарели, решение на самом деле намного проще. Вам нужно нажать кнопку «АЛИАС», вставить адрес электронной почты, на который вы хотите пересылать электронные письма, и нажать «Доставить в локальный почтовый ящик». чтобы поставить галочку. Если там стоит галочка, электронные письма также будут доставляться локально.