Postfix: неограниченное количество адресов пользователей через знак «+»

10

Пользователи Gmail могут получать практически неограниченные адреса электронной почты с помощью $name+$suffix@gmail.com(«плюс адресация»).

Я хотел бы иметь это для моего собственного почтового сервера, на котором работает Postfix. Данные почтового ящика и псевдонима хранятся в базе данных MySQL.

Я подозреваю, что необходимо изменить конфигурацию псевдонима, чтобы user+foo@example.orgсопоставить его с user@example.orgпочтовым ящиком, но я не могу понять, как это сделать.

Так возможно ли это? Как?

cweiske
источник

Ответы:

13

Помимо настройки

recipient_delimiter = +

Мне также пришлось изменить master.cf, чтобы maildrop получал не только получателя, но и реального пользователя:

maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=Debian-exim argv=/usr/bin/maildrop -d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop}

Сообщение в блоге: http://cweiske.de/tagebuch/postfix-plus-addressing.htm

cweiske
источник
Вы спрашивали о postfix, но это упоминает exim, что это другой SMTP-сервер. Кстати, обратите внимание, что если у вас есть настоящий IMAP-сервер (а не только почтовый ящик), использование LMTPнамного быстрее, чем maildrop. И если вы используете LMTP с Cyrus, вам это не понадобится.
mvp
1
пользователь - debian-exim, но это все еще постфикс.
cweiske
postfix.org/MAILDROP_README.html
Дмитрий Сандалов
Спас мой день с {nexthop}. Я даже не знал, что существует. Спасибо.
TCB13
Спасибо за ответ. Это мне очень помогло. Я использую postfix + procmail + dovecot на сервере virtualmin. Я просто добавил строку "receient_delimiter = +", и адресация плюс выглядит нормально. Должен ли я сделать что-нибудь дополнительное для procmail или dovecot? Кроме того, возможно ли ограничить это в отношении домена? Чтобы я мог включить эту плюсовую адресацию только для некоторых доменов на моем сервере? Спасибо.
Вишну
3

Вы не сказали, какой почтовый сервер хранит ваши письма. В наши дни это должен быть один из серверов IMAP - например, Cyrus, Dovecot, Courier, ...

Мне лично нравится Cyrus IMAP. Это поддерживает это относительно легко :

Плюс адресация - позволяет прямую доставку в определенный почтовый ящик (кроме INBOX). Это делается с помощью адреса в форме: username + mailfolder @ domain, который будет доставлен в папку INBOX.mailfolder пользователя (или эквивалент пространства имен altname). Этот почтовый ящик должен позволять отправляющему пользователю право 'p'.

Добавление права «p» является важным шагом - в противном случае вся почта (используется +или нет) будет доставлена ​​на имя пользователя INBOX.

Обратите внимание, что вы должны использовать LMTP(локальный почтовый транспортный протокол) для доставки вашей почты postfixна IMAPсервер, а также вам необходимо настроить postfix recipient_delimiter(или recipient_delimiters), как описано здесь :

recipient_delimiter = +
MVP
источник
до тех пор, пока письма не доходят до пользователя / почтового ящика, поскольку почтовый адрес не распознается принимающим сервером, поддержка сервера IMAP не имеет значения.
cweiske
спасибо за подсказку о "добавлении адреса". с этим именем я нашел решение.
cweiske
2

master.cfЛиния для Dovecot:

dovecot   unix  -       n       n       -       -       pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver
 -f ${sender} -a ${recipient} -d ${user}@${domain}

В Postfix 2.4 и более ранних версиях используйте ${nexthop}вместо${domain}

http://wiki2.dovecot.org/LDA/Postfix

DmitrySandalov
источник
Спасибо. Идеально, одного решения Postfix недостаточно, если вы используете Dovecot. Вам понадобится этот дополнительный конфиг для Dovecot.
Дэвид Вердин