Я переношу электронную почту со старых установок 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
Ответы выше устарели, решение на самом деле намного проще. Вам нужно нажать кнопку «АЛИАС», вставить адрес электронной почты, на который вы хотите пересылать электронные письма, и нажать «Доставить в локальный почтовый ящик». чтобы поставить галочку. Если там стоит галочка, электронные письма также будут доставляться локально.